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>
17 namespace BinaryAnalysis {
22 class 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.
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.