Predator
[unstable] git snapshot
|
directed acyclic graph of the symbolic execution trace More...
Data Structures | |
class | NodeBase |
an abstract base for Node and NodeHandle (externally not much useful) More... | |
class | Node |
an abstract node of the symbolic execution trace graph More... | |
class | NodeHandle |
useful to prevent a trace sub-graph from being destroyed too early More... | |
class | TransientNode |
used to explicitly highlight trace graph nodes that should not be reachable More... | |
class | RootNode |
root node of the trace graph (usually a call of the root function) More... | |
class | InsnNode |
a trace graph node that represents a non-terminal instruction More... | |
class | CondNode |
a trace graph node that represents a conditional insn being traversed More... | |
class | AbstractionNode |
a trace graph node that represents a single abstraction step More... | |
class | ConcretizationNode |
a trace graph node that represents a single concretization step More... | |
class | SpliceOutNode |
a trace graph node that represents a single splice-out operation More... | |
class | JoinNode |
a trace graph node that represents a single join operation More... | |
class | CloneNode |
trace graph nodes inserted automatically per each SymHeap clone operation More... | |
class | CallEntryNode |
trace graph node representing a call entry point More... | |
class | CallCacheHitNode |
trace graph node representing a cached call result More... | |
class | CallFrameNode |
trace graph node representing a call frame More... | |
class | CallDoneNode |
trace graph node representing a call result More... | |
class | ImportGlVarNode |
a trace graph node that represents a single call of importGlVar() More... | |
class | MsgNode |
trace graph node representing an error/warning message More... | |
class | UserNode |
trace graph node representing something important for the user More... | |
class | EndPointConsolidator |
a container maintaining a set of trace graph end-points More... | |
class | GraphProxy |
a container maintaining a set of trace graphs being built on the fly More... | |
class | Globals |
a singleton holding global GraphProxy (may be extended later) More... |
Typedefs | |
typedef struct cl_loc * | TLoc |
typedef const CodeStorage::Fnc * | TFnc |
typedef const CodeStorage::Insn * | TInsn |
typedef std::vector< Node * > | TNodeList |
typedef IdMapper< TObjId, OBJ_INVALID, OBJ_MAX_ID > | TIdMapper |
typedef std::vector< TIdMapper > | TIdMapperList |
Functions | |
std::string | insnToLabel (const TInsn insn) |
void | replaceNode (Node *tr, Node *by) |
void | resolveIdMapping (TIdMapper *pDst, const Node *trSrc, const Node *trDst) |
resolve composite ID mapping from trSrc to trDst | |
bool | plotTrace (Node *endPoint, const std::string &name, std::string *pName=0) |
plot a trace graph named "name-NNNN.dot" leading to the given node | |
void | printTrace (Node *endPoint) |
print a human-readable trace using the Code Listener messaging API | |
bool | chkTraceGraphConsistency (Node *const from) |
this runs in the debug build only | |
void | waiveCloneOperation (SymHeap &sh) |
mark the just completed clone operation as intended and unimportant | |
void | waiveCloneOperation (SymState &) |
mark the just completed clone operation as intended and unimportant |
directed acyclic graph of the symbolic execution trace
typedef const CodeStorage::Fnc* TFnc |
Definition at line 55 of file symtrace.hh.
typedef IdMapper<TObjId, OBJ_INVALID, OBJ_MAX_ID> TIdMapper |
Definition at line 61 of file symtrace.hh.
typedef std::vector<TIdMapper> TIdMapperList |
Definition at line 62 of file symtrace.hh.
typedef const CodeStorage::Insn* TInsn |
Definition at line 56 of file symtrace.hh.
Definition at line 54 of file symtrace.hh.
Definition at line 58 of file symtrace.hh.
bool Trace::chkTraceGraphConsistency | ( | Node *const | from | ) |
this runs in the debug build only
std::string Trace::insnToLabel | ( | const TInsn | insn | ) |
bool Trace::plotTrace | ( | Node * | endPoint, |
const std::string & | name, | ||
std::string * | pName = 0 |
||
) |
plot a trace graph named "name-NNNN.dot" leading to the given node
void Trace::printTrace | ( | Node * | endPoint | ) |
print a human-readable trace using the Code Listener messaging API
void Trace::replaceNode | ( | Node * | tr, |
Node * | by | ||
) |
void Trace::resolveIdMapping | ( | TIdMapper * | pDst, |
const Node * | trSrc, | ||
const Node * | trDst | ||
) |
resolve composite ID mapping from trSrc to trDst
void Trace::waiveCloneOperation | ( | SymHeap & | sh | ) |
mark the just completed clone operation as intended and unimportant
void Trace::waiveCloneOperation | ( | SymState & | ) |
mark the just completed clone operation as intended and unimportant