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