/analyzer

The goblint static analysis framework

Primary LanguageOCamlMIT LicenseMIT

goblint   Travis-CI Circle CI

Setup

Install opam, and then do opam install goblint to install the latest release.

For development, use make setup to install OCaml and all dependencies, and make to build.

Run goblint: ./goblint tests/regression/04-mutex/01-simple_rc.c.

If something goes wrong, take a look at travis-ci.sh for an example Ubuntu/macOS setup.

macOS

Goblint relies on GNU cpp to preprocess source files - the default clang cpp on macOS will not work. You can install it with brew install gcc (first do xcode-select --install if you don't want to build from source). You can check src/config.ml to see what command is used to call cpp.

Windows

We recommend using WSL/bash for Windows 10. For older versions you can try to build using Cygwin. For a goblint binary package, follow these instructions. For building from source, install Cygwin using setup-cygwin-dev.bat and then do

wget "https://raw.githubusercontent.com/goblint/analyzer/master/scripts/setup-cygwin-dev.sh" && source setup-cygwin-dev.sh

Docker container

You can run Goblint in a Docker container using:

docker run -it voglerr/goblint ./goblint --help

Virtual machine

A virtual machine containing Goblint can be set up using Vagrant:

vagrant up
vagrant ssh
sudo su -
cd analyzer

Web frontend

The analysis results are printed to stdout by default. Adding --html saves the results as XML, which is then transformed to be viewable in a web browser. Use make jar to build the needed Java program.

./goblint --html path/to/file.c && firefox result/index.xml