1 #ifndef ROSE_BinaryAnalysis_Concolic_M68kSystem_TracingExecutor_H
2 #define ROSE_BinaryAnalysis_Concolic_M68kSystem_TracingExecutor_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
5 #include <Rose/BinaryAnalysis/Concolic/ConcreteExecutor.h>
7 #include <boost/filesystem.hpp>
8 #include <boost/process/child.hpp>
9 #include <Sawyer/Trace.h>
12 namespace BinaryAnalysis {
14 namespace M68kSystem {
17 class TracingExecutor:
public Concolic::ConcreteExecutor {
18 using Super = Concolic::ConcreteExecutor;
22 using Ptr = TracingExecutorPtr;
25 explicit TracingExecutor(
const std::string&);
26 explicit TracingExecutor(
const DatabasePtr&);
32 static Ptr instance(
const DatabasePtr&);
38 virtual bool matchFactory(
const std::string&)
const override;
39 virtual Concolic::ConcreteExecutorPtr instanceFromFactory(
const DatabasePtr&)
override;
40 virtual Concolic::ConcreteResultPtr execute(
const TestCasePtr&)
override;
44 boost::process::child startQemu(
const boost::filesystem::path &firmwareName);
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.