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 <Sawyer/Trace.h>
9#include <boost/filesystem.hpp>
10#if BOOST_VERSION < 108600
11 #include <boost/process/child.hpp>
13 #include <boost/process/v1/child.hpp>
17namespace BinaryAnalysis {
22class TracingExecutor:
public Concolic::ConcreteExecutor {
23 using Super = Concolic::ConcreteExecutor;
27 using Ptr = TracingExecutorPtr;
30 explicit TracingExecutor(
const std::string&);
31 explicit TracingExecutor(
const DatabasePtr&);
37 static Ptr instance(
const DatabasePtr&);
43 virtual bool matchFactory(
const std::string&)
const override;
44 virtual Concolic::ConcreteExecutorPtr instanceFromFactory(
const DatabasePtr&)
override;
45 virtual Concolic::ConcreteResultPtr execute(
const TestCasePtr&)
override;
49 boost::process::child startQemu(
const boost::filesystem::path &firmwareName);
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.