MartinSpiessl / analyzer

The goblint static analysis framework

Home Page:https://goblint.in.tum.de

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

goblint

Travis Build Status Docker Build Status

Setup

For an up-to-date-version, clone this repository, use make setup to install OCaml and all dependencies, and make to build.

Alternatively: Install opam, and then do opam install goblint. Warning: The OPAM package is updated infrequently.

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

For Windows 10 we recommend using WSL. For older versions you can try to build using these scripts for Cygwin, or use a virtual machine.

Docker / Virtual machine

You can run Goblint in a Docker container using: docker run -it voglerr/goblint ./goblint --help.

A virtual machine containing Goblint can be set up using Vagrant: vagrant up && vagrant ssh.

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

Open result/index.xml in a browser of your choice. Depending on the browser security settings, it might be necessary to serve the result directory from a webserver to access it. This can be done by e.g. running python3 -m http.server in the result directory. The results should then be accessible at http://localhost:8000

About

The goblint static analysis framework

https://goblint.in.tum.de

License:MIT License


Languages

Language:OCaml 74.6%Language:C 22.6%Language:Shell 1.3%Language:Ruby 1.0%Language:Python 0.3%Language:HTML 0.1%Language:Dockerfile 0.1%Language:Batchfile 0.0%Language:Makefile 0.0%