ROSE  0.11.145.0
Public Attributes | List of all members
Rose::BinaryAnalysis::Partitioner2::BasePartitionerSettings Struct Reference

Description

Settings that directly control a partitioner.

These settings are specific to a Partitioner object.

Definition at line 352 of file BinaryAnalysis/Partitioner2/BasicTypes.h.

#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>

Public Attributes

bool usingSemantics = false
 Whether instruction semantics are used. More...
 
bool checkingCallBranch = false
 Whether to look for function calls used as branches. More...
 
bool basicBlockSemanticsAutoDrop = true
 Whether to automatically drop semantics for attached basic blocks. More...
 
bool ignoringUnknownInsns = false
 Whether unknown instructions are ignored. More...
 

Member Data Documentation

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 357 of file 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 362 of file 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.

See also
Partitioner::basicBlockDropSemantics

Definition at line 373 of file 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 381 of file BinaryAnalysis/Partitioner2/BasicTypes.h.


The documentation for this struct was generated from the following file: