Skip to content

Commit affdbcd

Browse files
authored
Merge pull request #48 from karkhaz/kk-cbmc-path-readme
Add README for CBMC Path
2 parents 1a95807 + 2196ab7 commit affdbcd

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,18 @@ jbmc: jbmc.zip
2020
cat $*.inc tool-wrapper.inc >> $@
2121
chmod 755 $@
2222

23-
cbmc-path.zip: cbmc.inc tool-wrapper.inc $(CBMC)/LICENSE $(CBMC)/src/cbmc/cbmc $(CBMC)/src/goto-cc/goto-cc
23+
cbmc-path.zip: cbmc.inc tool-wrapper.inc $(CBMC)/LICENSE $(CBMC)/src/cbmc/cbmc $(CBMC)/src/goto-cc/goto-cc README.cbmc-path.txt
2424
mkdir -p $(basename $@)
2525
$(MAKE) cbmc-wrapper
2626
mv cbmc-wrapper $(basename $@)/cbmc
2727
sed -i 's/^.\/cbmc-binary --graphml-witness/.\/cbmc-binary --paths fifo --graphml-witness/' $(basename $@)/cbmc
2828
cp -L $(CBMC)/LICENSE $(basename $@)/
2929
cp -L $(CBMC)/src/cbmc/cbmc $(basename $@)/cbmc-binary
3030
cp -L $(CBMC)/src/goto-cc/goto-cc $(basename $@)/
31+
cp -L README.cbmc-path.txt $(basename $@)/README.txt
3132
chmod a+rX $(basename $@)/*
3233
zip -r $@ $(basename $@)
33-
cd $(basename $@) && rm cbmc cbmc-binary goto-cc LICENSE
34+
cd $(basename $@) && rm cbmc cbmc-binary goto-cc LICENSE README.txt
3435
rmdir $(basename $@)
3536

3637
cbmc.zip: cbmc.inc tool-wrapper.inc $(CBMC)/LICENSE $(CBMC)/src/cbmc/cbmc $(CBMC)/src/goto-cc/goto-cc

README.cbmc-path.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
CBMC Path
2+
=========
3+
4+
This archive contains the following files:
5+
6+
- goto-cc: this C compiler transforms input files into so-called
7+
`goto-binaries,' which are encoded in CBMC's intermediate representation.
8+
9+
- cbmc-binary: this is the actual verification tool. It takes a goto-binary
10+
as input and checks the properties specified by command-line flags.
11+
12+
- cbmc: this wrapper script invokes cbmc-binary and goto-cc, parsing the
13+
property file to pass the correct flags to cbmc-binary and returning the
14+
correct return codes for SV-COMP.
15+
16+
goto-cc and cbmc-binary were compiled on Debian 9 (stretch); the binaries
17+
should be self-hosting on similar operating systems. The upstream URL, if
18+
you wish to compile it yourself, is https://github.com/diffblue/cbmc
19+
20+
To run CBMC Path manually, you need to invoke the tool as
21+
22+
cbmc-binary --paths fifo ...
23+
24+
which activates CBMC's path-exploration mode. Note that the tool will not
25+
terminate for input programs that contain loops unless you specify an
26+
unwinding limit using --unwind N. For other flags, see `cbmc-binary -h`.

0 commit comments

Comments
 (0)