TRACER
TRACER Symbolic Execution Tool
Install / Use
/learn @tracer-x/TRACERREADME
TRACER Symbolic Execution Tool
Copyright 2008-2016 National University of Singapore. All rights reserved.
See LICENSE.md for license information of TRACER. This distribution contains third party software. See lib/LICENSE for the copyright and license information of the included third-party software.
This is a version of TRACER symbolic execution tool with CIL front-end. Chu Duc Hiep, Joxan Jaffar, Rasool Maghareh, Vijayaraghavan Murali, Jorge Navas, Andrew Santosa, and Razvan Voicu contributed to its initial development.
Much appreciated feedbacks have been provided by Jia Su.
Prerequisites
- jdk >= 1.5
- ant >= 1.7.0
- gpp >= 2.24
- ocaml >= 3.12.1 (for CIL)
Installation by Building TRACER Distribution
This version of TRACER may not have all the features, but it has the
interpolation (abstraction learning) algorithm for search-space
reduction already implemented. For running on Linux/x86 systems,
execute ant dist to create tracer-0.1.tar.gz tracer distribution
package in the source root. Unpack tracer-0.1.tar.gz into your
preferred directory, say <some_prefix> and follow further
instructions in <some_prefix>/tracer-0.1/README.
Running TRACER in the Source Tree
This version is more advanced and has more features.
-
Set up environment variables
TRACER_PATHandCLPR_BASE_PATH.For instance, in bash:
export TRACER_PATH=<some_prefix>/tracer export CLPR_BASE_PATH=<some_prefix>/tracer/srcFor convenience, add to
PATHthe directory$TRACER_PATH/bin -
Build CLP(R):
cd $TRACER_PATH/src/clpr-1.2b make -
Build
cillyif necessary. There is a pre-builtcillyin both$TRACER_PATH/liband$TRACER_PATH/binfor Linux x86_64, however, you can build it in the following way:cd $TRACER_PATH/lib/cil-1.3.7 ./configure && make cp obj/x86_LINUX/cilly.asm.exe $TRACER_PATH/bin/cilly cp obj/x86_LINUX/cilly.asm.exe $TRACER_PATH/lib/cillyNote CIL needs OCaml. We tried with 3.11 but it does not work. The version we tested is 3.12.1
-
Run one of the following scripts:
tracer- run TRACER from the command line. You need to specify which analysis to run. For exampletracer slicerwill run the slicer. Runtracer -helpfor help on how to run the script.gtracer- run TRACER using a GUIcilly- run CIL (part of the compiler)
Some utilities:
c2c- output the symbolic execution tree in C format.allfigs2pdf- convert all dot files into pdf and open them using a pdf reader.
Files and Directories
build.xmlclasses- contains all *.class of the system (GENERATED AUTOMATICALLY)lib- contains *.jar filesbin- contains all scriptsdist- tools to generate the distribution versionsrccompiler/antlr- contains the compiler from C to CLPcompiler/GUIFrontEnd- contains the GUI front end of the systeminterpreter- contains the interpreter that runs the CLP program
Asked Questions
-
Q: Where are the benchmark programs used in SAS '12 paper: ''Path-Sensitive Backward Slicing'', and how to run the slicer?<br> A: The programs are:
- mpeg:
src/interpreter/tests/SLICING/MACRO_TESTS/mpeg/mpeg.c - diskperf:
src/interpreter/tests/SLICING/MACRO_TESTS/diskperf.c - floppy:
src/interpreter/tests/SLICING/MACRO_TESTS/floppy.c - cdaudio:
src/interpreter/tests/SLICING/MACRO_TESTS/cdaudio.c - serial:
src/interpreter/tests/SLICING/MACRO_TESTS/serial.c - fcron-2.9.5:
src/interpreter/tests/SLICING/MACRO_TESTS/fcron/fcron-instrumented-sliced.c
To run the slicer, say
tracer slicer <program_name>, where<program_name>is a C program name. - mpeg:
Contact
Joxan Jaffar, email: joxan@comp.nus.edu.sg
