ROSE 0.11.145.147
I386Linux/TracingResult.h
1#ifndef ROSE_BinaryAnalysis_Concolic_I386Linux_TracingResult_H
2#define ROSE_BinaryAnalysis_Concolic_I386Linux_TracingResult_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
6
7#include <Rose/BinaryAnalysis/AddressSet.h>
8#include <Rose/BinaryAnalysis/Concolic/ConcreteResult.h>
9
10#include <boost/serialization/access.hpp>
11#include <boost/serialization/nvp.hpp>
12
13namespace Rose {
14namespace BinaryAnalysis {
15namespace Concolic {
16namespace I386Linux {
17
19class TracingResult: public Concolic::ConcreteResult {
20 using Super = Concolic::ConcreteResult;
21
22public:
24 using Ptr = TracingResultPtr;
25
26private:
27 int exitStatus_; // as returned by wait
28 AddressSet executedVas_;
29
30protected:
31 TracingResult();
32 TracingResult(double rank, const AddressSet &executedVas);
33public:
34 ~TracingResult();
35
36public:
38 static Ptr instance(double rank, const AddressSet &executedVas);
39
45 int exitStatus() const;
46 void exitStatus(int);
52 const AddressSet& executedVas() const;
53 AddressSet& executedVas();
56private:
57 friend class boost::serialization::access;
58
59 template<class S>
60 void serialize(S &s, const unsigned /*version*/) {
61 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Super);
62 s & BOOST_SERIALIZATION_NVP(exitStatus_);
63 s & BOOST_SERIALIZATION_NVP(executedVas_);
64 }
65};
66
67} // namespace
68} // namespace
69} // namespace
70} // namespace
71
72#endif
73#endif
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
Sawyer::Container::Set< Address > AddressSet
Set of addresses.
Definition AddressSet.h:13
void serialize(std::ostream &output, Graph &graph)
Serialize a graph into a stream of bytes.
The ROSE library.