1 #ifndef ROSE_BinaryAnalysis_Concolic_LinuxTraceExecutor_H
2 #define ROSE_BinaryAnalysis_Concolic_LinuxTraceExecutor_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 {
18 class LinuxTraceExecutor:
public ConcreteExecutor {
24 class Result:
public ConcreteExecutorResult {
27 AddressSet executedVas;
30 friend class boost::serialization::access;
34 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(ConcreteExecutorResult);
35 s & BOOST_SERIALIZATION_NVP(executedVas);
40 explicit LinuxTraceExecutor(
const DatabasePtr&);
43 ~LinuxTraceExecutor();
46 static Ptr instance(
const DatabasePtr&);
49 static int exitStatus(
const ConcreteExecutorResult*);
52 const AddressSet& executedVas(
const ConcreteExecutorResult*);
54 ConcreteExecutorResult* execute(
const TestCasePtr&)
override;
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.
Main namespace for the ROSE library.
Reference-counting intrusive smart pointer.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.