GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - joannacss/SVF-Python: Using SVF in Python Projects

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

388 Commits
388 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
.idea
.idea
 
 
demo
demo
 
 
pybind
pybind
 
 
pysvf.egg-info
pysvf.egg-info
 
 
pysvf
pysvf
 
 
test_cases
test_cases
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
CMakeLists.txt
CMakeLists.txt
 
 
README.md
README.md
 
 
build.sh
build.sh
 
 
local_build.sh
local_build.sh
 
 
setup.py
setup.py
 
 
stubtest_allowlist.txt
stubtest_allowlist.txt
 
 

Repository files navigation

Pysvf: Python Bindings for SVF

News

  • SVF-Python now supports MTA bindings and more pointer analysis strategies(AndersenWaveDiff, AndersenBase, and Steensgaard bindings). (Thank JoelYYoung for his help!).

1. Introduction

Pysvf is a Python binding for the SVF (Static Value-Flow), a static analysis framework built on LLVM.

2. Installation

Pysvf can be installed in two ways:

Method 1: Install via pip (Test PyPI)

Requirements

  • Python 3.8 - 3.11
  • OS: Linux X86-64, Linux Arm64, MacOS

Install Command

python3 -m pip install -i https://test.pypi.org/simple/ pysvf

Method 2: Build from Source

Clone the repository and run the build script:

bash build.sh

This will build the SVF and its depedencies like LLVM and Z3, and set up the Python bindings.

3. Documentation

Documentation is available on the SVF-Python Wiki:

  • Pysvf API Reference

4. Tutorial

Example notebooks are provided in the tutorial folder. Before running them, please install Jupyter Notebook:

python3 -m pip install jupyter
cd demo
jupyter notebook

Then you can click one of the following notebooks.

Example Notebooks

  • PAG: Generate Program Assignment Graph (PAG / SVFIR) from LLVM BC files and manipulate PAGNode (SVFVar).
  • ICFG: Generate Interprocedural Control Flow Graph (ICFG) and manipulate ICFGNode, ICFGEdge, and subclasses.
  • SVFG: Generate Static Value Flow Graph (SVFG) and manipulate SVFGNode, SVFGEdge, and subclasses.

About

Using SVF in Python Projects

Resources

Readme
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.