1#ifndef ROSE_BinaryAnalysis_Concolic_I386Linux_ExitStatusExecutor_H
2#define ROSE_BinaryAnalysis_Concolic_I386Linux_ExitStatusExecutor_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
7#include <boost/serialization/export.hpp>
8#include <boost/serialization/access.hpp>
9#include <boost/serialization/nvp.hpp>
10#include <boost/serialization/base_object.hpp>
11#include <Rose/BinaryAnalysis/Concolic/ConcreteExecutor.h>
12#include <Sawyer/Optional.h>
13#include <Sawyer/SharedPointer.h>
17namespace BinaryAnalysis {
22class ExitStatusExecutor:
public Concolic::ConcreteExecutor {
23 using Super = Concolic::ConcreteExecutor;
27 using Ptr = ExitStatusExecutorPtr;
35 bool useAddressRandomization_ =
false;
38 explicit ExitStatusExecutor(
const std::string &name);
39 explicit ExitStatusExecutor(
const DatabasePtr&);
42 ~ExitStatusExecutor();
45 static Ptr instance(
const DatabasePtr&);
56 bool useAddressRandomization()
const {
return useAddressRandomization_; }
57 void useAddressRandomization(
bool b) { useAddressRandomization_ = b; }
61 virtual bool matchFactory(
const std::string&)
const override;
62 virtual Concolic::ConcreteExecutorPtr instanceFromFactory(
const DatabasePtr&)
override;
63 virtual Concolic::ConcreteResultPtr execute(
const TestCasePtr&)
override;
Holds a value or nothing.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.