diff options
author | Martin Nowack <martin.nowack@gmail.com> | 2016-03-23 15:49:29 +0000 |
---|---|---|
committer | Martin Nowack <martin@se.inf.tu-dresden.de> | 2016-03-23 21:14:05 +0100 |
commit | a5f0334c0a844a0d6177c38375ec92ae8db217f9 (patch) | |
tree | 076b0e0bc6182f45d4c466e4507107a27b70b3c0 /lib/Solver/QueryLoggingSolver.cpp | |
parent | 58f947302c9807b7f6bea2fcb2a7bb325f8dd1b2 (diff) | |
download | klee-a5f0334c0a844a0d6177c38375ec92ae8db217f9.tar.gz |
Add option to log partial solver queries before calling it
Diffstat (limited to 'lib/Solver/QueryLoggingSolver.cpp')
-rw-r--r-- | lib/Solver/QueryLoggingSolver.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/Solver/QueryLoggingSolver.cpp b/lib/Solver/QueryLoggingSolver.cpp index 5484a319..b6c25b55 100644 --- a/lib/Solver/QueryLoggingSolver.cpp +++ b/lib/Solver/QueryLoggingSolver.cpp @@ -18,6 +18,12 @@ using namespace klee::util; +namespace { +llvm::cl::opt<bool> DumpPartialQueryiesEarly( + "log-partial-queries-early", llvm::cl::init(false), + llvm::cl::desc("Log queries before calling the solver (default=off)")); +} + QueryLoggingSolver::QueryLoggingSolver(Solver *_solver, std::string path, const std::string& commentSign, @@ -53,9 +59,15 @@ void QueryLoggingSolver::startQuery(const Query& query, const char* typeName, << "Instructions: " << instructions << "\n"; printQuery(query, falseQuery, objects); - + + if (DumpPartialQueryiesEarly) { + logBuffer.flush(); + os << logBuffer.str(); + os.flush(); + // prepare the buffer for reuse + BufferString = ""; + } startTime = getWallTime(); - } void QueryLoggingSolver::finishQuery(bool success) { @@ -199,4 +211,3 @@ char *QueryLoggingSolver::getConstraintLog(const Query& query) { void QueryLoggingSolver::setCoreSolverTimeout(double timeout) { solver->impl->setCoreSolverTimeout(timeout); } - |