Skip to content

TDacik/Deadlock_and_Racer

Repository files navigation

RacerF & DeadlockF

RacerF and DeadlockF are static analysers for detection of data races and deadlocks in multi-threaded C programs with mutexes. Both tools are implemented as plugins of the Frama-C platform.

Installation

The recent versions of the plugins are compatible with Frama-C 29.0 (Copper).

For installation, opam package manager and OCaml >= 5.1 is necessary. After cloning this repository, run opam install .

Usage

The simplest way to run the plugins is:

frama-c -racer source_file1.c source_file2.c ...
frama-c -deadlock source_file1.c source_file2.c ...

Several commandline options can be specified. The options related to a specific plugin are prefixed -racer and -deadlock, respectively, the general options are prefixed by -cc. Run `frama-c [racer|deadlock]-h to see more details.

Running via wrapper script

The script racerf.py can be used to run RacerF using a combination of under- and over-approximating strategy as follows:

./scripts/racerf.py -machdep=[gcc_x86_32|gcc_x86_64] [--under|--over] [--debug] [frama-c-options] source_file.c

The options --under and --over run just under- and --over approximation respectively. By default, the combined strategy is used.

Currently only single source file can be analysed using the wrapper. Moreover, machine model of Frama-C needs to be one of gcc_x86_32 or gcc_x86_64.

Related papers

Contact

If you have any questions, do not hesitate to contact the tool/method authors:

License

The plugin is available under MIT license.

About

Frama-C plugins for deadlock and data race detection

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published