12
12
#include " TerminationTypes.h"
13
13
#include " klee/Module/Annotation.h"
14
14
15
+ #include " klee/ADT/KTest.h"
15
16
#include " klee/Module/SarifReport.h"
16
17
17
18
#include < cstdint>
@@ -58,8 +59,11 @@ class InterpreterHandler {
58
59
59
60
virtual void processTestCase (const ExecutionState &state, const char *message,
60
61
const char *suffix, bool isError = false ) = 0;
61
-
62
62
virtual ToolJson info () const = 0;
63
+
64
+ // used for writing .ktest files
65
+ virtual int argc () = 0;
66
+ virtual char **argv () = 0;
63
67
};
64
68
65
69
// / [File][Line][Column] -> Opcode
@@ -209,10 +213,6 @@ class Interpreter {
209
213
// a user specified path. use null to reset.
210
214
virtual void setReplayPath (const std::vector<bool > *path) = 0;
211
215
212
- // supply a set of symbolic bindings that will be used as "seeds"
213
- // for the search. use null to reset.
214
- virtual void useSeeds (const std::vector<struct KTest *> *seeds) = 0;
215
-
216
216
virtual void runFunctionAsMain (llvm::Function *f, int argc, char **argv,
217
217
char **envp) = 0;
218
218
@@ -237,7 +237,10 @@ class Interpreter {
237
237
virtual void getConstraintLog (const ExecutionState &state, std::string &res,
238
238
LogType logFormat = STP) = 0;
239
239
240
- virtual bool getSymbolicSolution (const ExecutionState &state, KTest &res) = 0;
240
+ virtual void getSteppedInstructions (const ExecutionState &state,
241
+ unsigned &res) = 0;
242
+
243
+ virtual bool getSymbolicSolution (const ExecutionState &state, KTest *res) = 0;
241
244
242
245
virtual void addSARIFReport (const ExecutionState &state) = 0;
243
246
0 commit comments