ROSE 0.11.145.247
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#ifdef ROSE_ENABLE_BOOST_SERIALIZATION
11#include <boost/serialization/access.hpp>
12#include <boost/serialization/nvp.hpp>
13#endif
14
15namespace Rose {
16namespace BinaryAnalysis {
17namespace Concolic {
18namespace I386Linux {
19
21class TracingResult: public Concolic::ConcreteResult {
22 using Super = Concolic::ConcreteResult;
23
24public:
26 using Ptr = TracingResultPtr;
27
28private:
29 int exitStatus_; // as returned by wait
30 AddressSet executedVas_;
31
32protected:
33 TracingResult();
34 TracingResult(double rank, const AddressSet &executedVas);
35public:
36 ~TracingResult();
37
38public:
40 static Ptr instance(double rank, const AddressSet &executedVas);
41
47 int exitStatus() const;
48 void exitStatus(int);
54 const AddressSet& executedVas() const;
55 AddressSet& executedVas();
58private:
59 friend class boost::serialization::access;
60
61 template<class S>
62 void serialize(S &s, const unsigned /*version*/) {
63 s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Super);
64 s & BOOST_SERIALIZATION_NVP(exitStatus_);
65 s & BOOST_SERIALIZATION_NVP(executedVas_);
66 }
67};
68
69} // namespace
70} // namespace
71} // namespace
72} // namespace
73
74#endif
75#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.