1 #ifndef ROSE_BinaryAnalysis_Concolic_I386Linux_TracingExecutor_H
2 #define ROSE_BinaryAnalysis_Concolic_I386Linux_TracingExecutor_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
5 #include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
7 #include <Rose/BinaryAnalysis/Concolic/ConcreteExecutor.h>
8 #include <Sawyer/SharedObject.h>
9 #include <Sawyer/SharedPointer.h>
12 namespace BinaryAnalysis {
19 class TracingExecutor:
public Concolic::ConcreteExecutor {
20 using Super = Concolic::ConcreteExecutor;
24 using Ptr = TracingExecutorPtr;
28 friend class boost::serialization::access;
35 explicit TracingExecutor(
const std::string &name);
36 explicit TracingExecutor(
const DatabasePtr&);
42 static Ptr instance(
const DatabasePtr&);
48 static int exitStatus(
const ConcreteResultPtr&);
51 const AddressSet& executedVas(
const ConcreteResultPtr&);
53 ConcreteResultPtr execute(
const TestCasePtr&)
override;
56 virtual bool matchFactory(
const std::string&)
const override;
57 virtual Concolic::ConcreteExecutorPtr instanceFromFactory(
const DatabasePtr&)
override;
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.