Files
Overview of the main files generated by KLEE
Contents
Standard Global Files
These are global files are always generated on a KLEE execution:
-
info: This is a text file containing various information related to a KLEE run. In particular, it records the exact command-line with which KLEE was run, and the total time taken by the execution, e.g.:
$ cat info klee --write-kqueries demo.o PID: 12460 Started: 2009-05-20 22:31:41 BEGIN searcher description DFSSearcher END searcher description Finished: 2009-05-20 22:31:41 Elapsed: 00:00:00 KLEE: done: explored paths = 3 KLEE: done: avg. constructs per query = 6 KLEE: done: total queries = 3 KLEE: done: valid queries = 0 KLEE: done: invalid queries = 3 KLEE: done: query cex = 3 KLEE: done: total instructions = 67 KLEE: done: completed paths = 3 KLEE: done: generated tests = 3
- warnings.txt: This is a text file containing all warnings emitted by KLEE.
- messages.txt: This is a text file containing all other messages emitted by KLEE.
- assembly.ll: This file contains a human readable version of the LLVM bitcode executed by KLEE
- run.stats: This is a SQLite file containing various statistics emitted by KLEE. While this file can be inspected manually, you should use the klee-stats tool for that.
- run.istats: This is a binary file containing global statistics emitted by KLEE for each line of code in the program.
Other Global Files
- all-queries.kquery: This file contains all the queries KLEE made during execution in the KQuery format. Note these are the queries before any optimisation (e.g. caching, constraint independence) so it is possible that some of the queries logged are never executed by KLEE’s underlying solver or are modified before being executed by KLEE’s underlying solver. The generation of this file can be enabled by specifying the option
--use-query-log=all:kquery
to KLEE. - all-queries.smt2: This file contains all the queries KLEE made during execution in the SMT-LIBv2 .It contains the same information as all-queries.kquery. The generation of this file can be enabled by specifying the option
--use-query-log=all:smt2
to KLEE. - solver-queries.kquery: This file contains all the queries passed to KLEE’s underlying solver during execution in the KQuery format. Note these are the queries after all optimisations (e.g. caching, constraint independence) are performed. The generation of this file can be enabled by specifying the option
--use-query-log=solver:kquery
to KLEE. - solver-queries.smt2: This file contains all the queries passed to KLEE’s underlying solver during execution in the SMT-LIBv2 format. It contains the same information as
solver-queries.kquery
. The generation of this file can be enabled by specifying the option--use-query-log=solver:smt2
to KLEE.
Per-path files
- test<N>.ktest: Contains the test case generated by KLEE on that path. Use ktest-tool to read the contents. The generation of
.ktest
files can be disabled using the--write-no-tests
option. - test<N>.<error-type>.err: Generated for paths where KLEE found an error. Contains information about the error in textual form.
- test<N>.kquery: Contains the constraints associated with the given path, in KQuery format. The generation of these files can be enabled via the
--write-kqueries
flag. - test<N>.cvc: Contains the constraints associated with the given path, in CVC format. The generation of these files can be enabled via the
--write-cvcs
flag. (This is the same information as in the corresponding.kquery
file.) - test<N>.smt2: Contains the constraints associated with the given path, in SMT-LIBv2 format. The generation of these files can be enabled via the
--write-smt2s
flag. (This is the same information as in the corresponding.kquery
file.)