ROSE 0.11.145.192
|
A semantics domain wrapper that prints and checks all RISC operators as they occur.
This semantics domain provides only a RiscOperators class, which chains most methods to a subdomain specified either with its constructor or via set_subdomain(). In order to add tracing to any domain, simply wrap that domain's RiscOperators object inside a TraceSemantics' RiscOperators:
When an instruction is processed, it will emit traces on standard output (by default; see set_stream()). The messages look something like this (the exact format depends on the subdomain being traced):
The TraceSemantics also checks for problems with operand and return value widths and reports them in the output also. Tracing can be turned off either by specifying a NULL file pointer for set_stream(), or by unwrapping the subdomain's RISC operators, something along these lines:
Classes | |
class | RiscOperators |
Wraps RISC operators so they can be traced. More... | |
Typedefs | |
using | SValue = void |
using | SValuePtr = boost::shared_ptr< void > |
Shared-ownership pointer to trace-semantics values. | |
using | RegisterState = void |
using | RegisterStatePtr = boost::shared_ptr< void > |
Shared-ownership pointer to trace-semantics register state. | |
using | MemoryState = void |
using | MemoryStatePtr = boost::shared_ptr< void > |
Shared-ownership pointer to trace-semantics memory state. | |
using | RiscOperatorsPtr = boost::shared_ptr< class RiscOperators > |
Shared-ownership pointer to trace-semantics RISC operations. | |
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::SValue = typedef void |
Definition at line 59 of file TraceSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::SValuePtr = typedef boost::shared_ptr<void> |
Shared-ownership pointer to trace-semantics values.
Definition at line 62 of file TraceSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::RegisterState = typedef void |
Definition at line 69 of file TraceSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::RegisterStatePtr = typedef boost::shared_ptr<void> |
Shared-ownership pointer to trace-semantics register state.
Definition at line 72 of file TraceSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::MemoryState = typedef void |
Definition at line 79 of file TraceSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::MemoryStatePtr = typedef boost::shared_ptr<void> |
Shared-ownership pointer to trace-semantics memory state.
Definition at line 82 of file TraceSemantics.h.
using Rose::BinaryAnalysis::InstructionSemantics::TraceSemantics::RiscOperatorsPtr = typedef boost::shared_ptr<class RiscOperators> |
Shared-ownership pointer to trace-semantics RISC operations.
Definition at line 90 of file TraceSemantics.h.