about summary refs log tree commit diff homepage
path: root/lib/Solver/Z3Builder.h
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2017-05-24 18:25:08 +0100
committerDan Liew <delcypher@gmail.com>2017-06-01 11:36:09 +0100
commit2f7878e424dd17b931e56fe179f08a9289211c36 (patch)
tree6b89c957b9f0b7daf6bf734370df6db49dbcd465 /lib/Solver/Z3Builder.h
parent1311a933232642299fa3593d9f7766e26ae66d3b (diff)
downloadklee-2f7878e424dd17b931e56fe179f08a9289211c36.tar.gz
[Z3] Implement API logging.
Add `-debug-z3-log-api-interaction` option to allow Z3 API calls to be
logged to a file. The files logged by this option can be replayed by the
`z3` binary (using its `-log` option). This is incredibly useful because
it allows to exactly replay Z3's behaviour outside of KLEE.
Diffstat (limited to 'lib/Solver/Z3Builder.h')
-rw-r--r--lib/Solver/Z3Builder.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Solver/Z3Builder.h b/lib/Solver/Z3Builder.h
index c41eace0..a3473f82 100644
--- a/lib/Solver/Z3Builder.h
+++ b/lib/Solver/Z3Builder.h
@@ -165,11 +165,11 @@ private:
   Z3SortHandle getBvSort(unsigned width);
   Z3SortHandle getArraySort(Z3SortHandle domainSort, Z3SortHandle rangeSort);
   bool autoClearConstructCache;
+  std::string z3LogInteractionFile;
 
 public:
   Z3_context ctx;
-
-  Z3Builder(bool autoClearConstructCache = true);
+  Z3Builder(bool autoClearConstructCache, const char *z3LogInteractionFile);
   ~Z3Builder();
 
   Z3ASTHandle getTrue();