ROSE 0.11.145.192
|
Settings that directly control a partitioner.
These settings are specific to a Partitioner object.
Definition at line 326 of file Rose/BinaryAnalysis/Partitioner2/BasicTypes.h.
#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
Public Attributes | |
bool | usingSemantics = false |
Whether instruction semantics are used. | |
bool | checkingCallBranch = false |
Whether to look for function calls used as branches. | |
bool | basicBlockSemanticsAutoDrop = true |
Whether to automatically drop semantics for attached basic blocks. | |
bool | ignoringUnknownInsns = false |
Whether unknown instructions are ignored. | |
bool Rose::BinaryAnalysis::Partitioner2::BasePartitionerSettings::usingSemantics = false |
Whether instruction semantics are used.
If semantics are used, then the partitioner will have more accurate reasoning about the control flow graph. For instance, semantics enable the detection of certain kinds of opaque predicates.
Definition at line 331 of file Rose/BinaryAnalysis/Partitioner2/BasicTypes.h.
bool Rose::BinaryAnalysis::Partitioner2::BasePartitionerSettings::checkingCallBranch = false |
Whether to look for function calls used as branches.
If this property is set, then function call instructions are not automatically assumed to be actual function calls.
Definition at line 336 of file Rose/BinaryAnalysis/Partitioner2/BasicTypes.h.
bool Rose::BinaryAnalysis::Partitioner2::BasePartitionerSettings::basicBlockSemanticsAutoDrop = true |
Whether to automatically drop semantics for attached basic blocks.
Basic blocks normally cache their semantic state as they're being discovered so that the state does not need to be recomputed from the beginning of the block each time a new instruction is appended. However, caching this information can consume a large number of symbolic expression nodes which are seldom needed once the basic block is fully discovered. Therefore, setting this property to true will cause a basic block's semantic information to be forgotten as soon as the basic block is attached to the CFG.
Definition at line 347 of file Rose/BinaryAnalysis/Partitioner2/BasicTypes.h.
bool Rose::BinaryAnalysis::Partitioner2::BasePartitionerSettings::ignoringUnknownInsns = false |
Whether unknown instructions are ignored.
If set, then instructions that cannot be disassembled are treated like no-ops for the purpose of building the global control flow graph (otherwise they terminate a basic block). This is useful when working with fixed-width instruction set architectures for which ROSE has an incomplete disassembler. For instance, PowerPC architectures that are augmented with additional undocumented co-processor instructions.
Definition at line 355 of file Rose/BinaryAnalysis/Partitioner2/BasicTypes.h.