ROSE
0.11.130.0
|
Memory state.
Reading from an address that is either not writable (lacks MemoryMap::WRITABLE) or which is initialized (has MemoryMap::INITIALIZED) obtains the data directly from the memory map.
Addresses for each read operation are saved in a list which is nominally reset at the beginning of each instruction.
Definition at line 56 of file Semantics.h.
#include <Rose/BinaryAnalysis/Partitioner2/Semantics.h>
Public Types | |
typedef boost::shared_ptr< MemoryState > | Ptr |
Shared-ownership pointer to a MemoryState. More... | |
Static Public Member Functions | |
static Ptr | instance (const InstructionSemantics::BaseSemantics::MemoryCellPtr &protocell) |
Instantiates a new memory state having specified prototypical cells and value. More... | |
static Ptr | instance (const InstructionSemantics::BaseSemantics::SValuePtr &addrProtoval, const InstructionSemantics::BaseSemantics::SValuePtr &valProtoval) |
Instantiates a new memory state having specified prototypical value. More... | |
static Ptr | instance (const Ptr &other) |
Instantiates a new deep copy of an existing state. More... | |
static Ptr | promote (const InstructionSemantics::BaseSemantics::MemoryStatePtr &x) |
Recasts a base pointer to a symbolic memory state. More... | |
Protected Member Functions | |
MemoryState (const InstructionSemantics::BaseSemantics::MemoryCellPtr &protocell) | |
MemoryState (const InstructionSemantics::BaseSemantics::SValuePtr &addrProtoval, const InstructionSemantics::BaseSemantics::SValuePtr &valProtoval) | |
typedef boost::shared_ptr<MemoryState> Rose::BinaryAnalysis::Partitioner2::Semantics::MemoryState< Super >::Ptr |
Shared-ownership pointer to a MemoryState.
See Shared ownership.
Definition at line 59 of file Semantics.h.
|
inlinestatic |
Instantiates a new memory state having specified prototypical cells and value.
Definition at line 92 of file Semantics.h.
Referenced by Rose::BinaryAnalysis::Partitioner2::Semantics::MemoryState< Super >::create().
|
inlinestatic |
Instantiates a new memory state having specified prototypical value.
Definition at line 97 of file Semantics.h.
|
inlinestatic |
Instantiates a new deep copy of an existing state.
Definition at line 103 of file Semantics.h.
|
inlineoverridevirtual |
Virtual constructor.
Creates a memory state having specified prototypical value.
Definition at line 110 of file Semantics.h.
References Rose::BinaryAnalysis::Partitioner2::Semantics::MemoryState< Super >::instance().
|
inlineoverridevirtual |
Virtual constructor.
Creates a new memory state having specified prototypical cells and value.
Definition at line 117 of file Semantics.h.
References Rose::BinaryAnalysis::Partitioner2::Semantics::MemoryState< Super >::instance().
|
inlineoverridevirtual |
Virtual copy constructor.
Creates a new deep copy of this memory state.
Definition at line 123 of file Semantics.h.
|
inlinestatic |
Recasts a base pointer to a symbolic memory state.
This is a checked cast that will fail if the specified pointer does not point to an object of our class.
Definition at line 131 of file Semantics.h.
|
inline |
Property: Enabled.
A memory state can be disabled, in which case writes are ignored and reads always return a copy of the provided default value. Disabling a memory state is useful for certain data-flow analyses that don't need memory.
Definition at line 144 of file Semantics.h.
|
inline |
Property: Enabled.
A memory state can be disabled, in which case writes are ignored and reads always return a copy of the provided default value. Disabling a memory state is useful for certain data-flow analyses that don't need memory.
Definition at line 145 of file Semantics.h.
|
inline |
The memory map for the specimen.
If this memory map exists and contains segments that have read permission but lack write permission, then any reads from such addresses will return the concrete values read from the map. Any writes to such addresses will cause warnings and no operation to be performed.
Definition at line 155 of file Semantics.h.
|
inline |
The memory map for the specimen.
If this memory map exists and contains segments that have read permission but lack write permission, then any reads from such addresses will return the concrete values read from the map. Any writes to such addresses will cause warnings and no operation to be performed.
Definition at line 156 of file Semantics.h.