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/AddressSet.h>
8#include <Rose/BinaryAnalysis/Concolic/ConcreteExecutor.h>
10#include <Sawyer/SharedObject.h>
11#include <Sawyer/SharedPointer.h>
16namespace BinaryAnalysis {
23class TracingExecutor:
public Concolic::ConcreteExecutor {
24 using Super = Concolic::ConcreteExecutor;
28 using Ptr = TracingExecutorPtr;
32 friend class boost::serialization::access;
39 explicit TracingExecutor(
const std::string &name);
40 explicit TracingExecutor(
const DatabasePtr&);
46 static Ptr instance(
const DatabasePtr&);
52 static int exitStatus(
const ConcreteResultPtr&);
55 const AddressSet& executedVas(
const ConcreteResultPtr&);
57 ConcreteResultPtr execute(
const TestCasePtr&)
override;
60 virtual bool matchFactory(
const std::string&)
const override;
61 virtual Concolic::ConcreteExecutorPtr instanceFromFactory(
const DatabasePtr&)
override;
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
Sawyer::Container::Set< Address > AddressSet
Set of addresses.
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.