1212#include  " TerminationTypes.h" 
1313#include  " klee/Module/Annotation.h" 
1414
15+ #include  " klee/ADT/KTest.h" 
1516#include  " klee/Module/SarifReport.h" 
1617
1718#include  < cstdint> 
@@ -58,8 +59,11 @@ class InterpreterHandler {
5859
5960  virtual  void  processTestCase (const  ExecutionState &state, const  char  *message,
6061                               const  char  *suffix, bool  isError = false ) = 0;
61- 
6262  virtual  ToolJson info () const  = 0;
63+ 
64+   //  used for writing .ktest files
65+   virtual  int  argc () = 0;
66+   virtual  char  **argv () = 0;
6367};
6468
6569// / [File][Line][Column] -> Opcode
@@ -209,10 +213,6 @@ class Interpreter {
209213  //  a user specified path. use null to reset.
210214  virtual  void  setReplayPath (const  std::vector<bool > *path) = 0;
211215
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- 
216216  virtual  void  runFunctionAsMain (llvm::Function *f, int  argc, char  **argv,
217217                                 char  **envp) = 0;
218218
@@ -237,7 +237,10 @@ class Interpreter {
237237  virtual  void  getConstraintLog (const  ExecutionState &state, std::string &res,
238238                                LogType logFormat = STP) = 0;
239239
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;
241244
242245  virtual  void  addSARIFReport (const  ExecutionState &state) = 0;
243246
0 commit comments