9#ifndef KLEE_INTERPRETER_H
10#define KLEE_INTERPRETER_H
31class TreeStreamWriter;
41 virtual std::unique_ptr<llvm::raw_fd_ostream>
openOutputFile(
const std::string &filename) = 0;
64 const std::string &_EntryPoint,
const std::string &_OptSuffix,
65 bool _Optimize,
bool _CheckDivZero,
bool _CheckOvershift)
102 const InterpreterOptions &_interpreterOpts,
110 virtual llvm::Module *
111 setModule(std::vector<std::unique_ptr<llvm::Module>> &modules,
133 virtual void useSeeds(
const std::vector<struct KTest *> *seeds) = 0;
160 std::pair<std::string,
161 std::vector<unsigned char> > >
165 std::map<
const std::string*, std::set<unsigned> > &res) = 0;
ExecutionState representing a path under exploration.
virtual ~InterpreterHandler()
virtual std::string getOutputFilename(const std::string &filename)=0
virtual void incPathsExplored(std::uint32_t num=1)=0
virtual llvm::raw_ostream & getInfoStream() const =0
virtual std::unique_ptr< llvm::raw_fd_ostream > openOutputFile(const std::string &filename)=0
virtual void processTestCase(const ExecutionState &state, const char *err, const char *suffix)=0
virtual void incPathsCompleted()=0
virtual void setReplayKTest(const struct KTest *out)=0
virtual void setSymbolicPathWriter(TreeStreamWriter *tsw)=0
virtual void prepareForEarlyExit()=0
virtual void getCoveredLines(const ExecutionState &state, std::map< const std::string *, std::set< unsigned > > &res)=0
virtual void runFunctionAsMain(llvm::Function *f, int argc, char **argv, char **envp)=0
virtual llvm::Module * setModule(std::vector< std::unique_ptr< llvm::Module > > &modules, const ModuleOptions &opts)=0
const InterpreterOptions interpreterOpts
static Interpreter * create(llvm::LLVMContext &ctx, const InterpreterOptions &_interpreterOpts, InterpreterHandler *ih)
Interpreter(const InterpreterOptions &_interpreterOpts)
virtual void setHaltExecution(bool value)=0
virtual unsigned getPathStreamID(const ExecutionState &state)=0
virtual void setReplayPath(const std::vector< bool > *path)=0
virtual void setInhibitForking(bool value)=0
virtual void setPathWriter(TreeStreamWriter *tsw)=0
virtual void getConstraintLog(const ExecutionState &state, std::string &res, LogType logFormat=STP)=0
virtual unsigned getSymbolicPathStreamID(const ExecutionState &state)=0
virtual bool getSymbolicSolution(const ExecutionState &state, std::vector< std::pair< std::string, std::vector< unsigned char > > > &res)=0
virtual void useSeeds(const std::vector< struct KTest * > *seeds)=0
int const char const char * suffix
unsigned MakeConcreteSymbolic
ModuleOptions(const std::string &_LibraryDir, const std::string &_EntryPoint, const std::string &_OptSuffix, bool _Optimize, bool _CheckDivZero, bool _CheckOvershift)