Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Organization of this Guide
Petablox is a program analysis platform that is both stand-alone, in that it provides many standard analyses for users to run, and extensible, in that it allows users to write and run their own analyses, possibly atop the provided analyses. As a result, Petablox has two kinds of users: end-users, who only wish to run predefined analyses, and developers, who additionally wish to write and run their own analyses.
For convenience, this user guide consists of two parts: a guide for end-users and a guide for developers. Unlike end-users, developers need to understand Petablox's source code and API, and code written by them is executed as part of a Petablox run. Hence, the guide for end-users concerns how to run Petablox, and the guide for developers concerns how to extend Petablox.
Petablox would not be possible without the following open-source software:
- Soot, a Java compiler framework
- Javassist, a Java bytecode manipulation framework
- bddbddb, a BDD-based Datalog solver
Petablox additionally relies on the following open-source tools and libraries: