ROSE  0.9.10.89
Public Attributes | List of all members
Rose::BinaryAnalysis::Partitioner2::LoaderSettings Struct Reference

Description

Settings for loading specimens.

The runtime descriptions and command-line parser for these switches can be obtained from loaderSwitches.

Definition at line 185 of file BasicTypes.h.

#include <BasicTypes.h>

Collaboration diagram for Rose::BinaryAnalysis::Partitioner2::LoaderSettings:
Collaboration graph
[legend]

Public Attributes

size_t deExecuteZerosThreshold
 Size threshold for removing execute permission from zero data. More...
 
size_t deExecuteZerosLeaveAtFront
 Number of bytes at the beginning of each zero area to leave unaffected. More...
 
size_t deExecuteZerosLeaveAtBack
 Number of bytes at the end of each zero area to leave unaffected. More...
 
MemoryDataAdjustment memoryDataAdjustment
 How to globally adjust memory segment access bits for data areas. More...
 
bool memoryIsExecutable
 Determines whether all of memory should be made executable. More...
 
bool linkObjectFiles
 Link object files before parsing. More...
 
bool linkStaticArchives
 Link static libraries before parsing. More...
 
std::string linker
 Command to run to link object and archives. More...
 

Member Data Documentation

size_t Rose::BinaryAnalysis::Partitioner2::LoaderSettings::deExecuteZerosThreshold

Size threshold for removing execute permission from zero data.

If this data member is non-zero, then the memory map will be adjusted by removing execute permission from any region of memory that has at least this many consecutive zero bytes. The affected regions are adjusted by the deExecuteZerosLeaveAtFront and deExecuteZerosLeaveAtBack data members. This happens after the memoryIsExecutable property is processed.

Definition at line 186 of file BasicTypes.h.

size_t Rose::BinaryAnalysis::Partitioner2::LoaderSettings::deExecuteZerosLeaveAtFront

Number of bytes at the beginning of each zero area to leave unaffected.

Definition at line 193 of file BasicTypes.h.

size_t Rose::BinaryAnalysis::Partitioner2::LoaderSettings::deExecuteZerosLeaveAtBack

Number of bytes at the end of each zero area to leave unaffected.

Definition at line 195 of file BasicTypes.h.

MemoryDataAdjustment Rose::BinaryAnalysis::Partitioner2::LoaderSettings::memoryDataAdjustment

How to globally adjust memory segment access bits for data areas.

See the enum for details. The default is DATA_NO_CHANGE, which causes the partitioner to use the user-supplied memory map without changing anything.

Definition at line 197 of file BasicTypes.h.

bool Rose::BinaryAnalysis::Partitioner2::LoaderSettings::memoryIsExecutable

Determines whether all of memory should be made executable.

The executability bit controls whether the partitioner is able to make instructions at that address. The default, false, means that the engine will not modify executable bits in memory, but rather use the bits already set in the memory map. This happens before the deExecuteZeros property is processed.

Definition at line 201 of file BasicTypes.h.

bool Rose::BinaryAnalysis::Partitioner2::LoaderSettings::linkObjectFiles

Link object files before parsing.

Definition at line 207 of file BasicTypes.h.

bool Rose::BinaryAnalysis::Partitioner2::LoaderSettings::linkStaticArchives

Link static libraries before parsing.

Definition at line 208 of file BasicTypes.h.

std::string Rose::BinaryAnalysis::Partitioner2::LoaderSettings::linker

Command to run to link object and archives.

ELF object files typically don't contain information about how the object is mapped into memory. If this setting is a non-empty string then a shell command is constructed and run on all the supplied object and library files and the resulting file is used instead. The string should contain two variables of the form "%o" and "%f" which are the single output file name and the space separated list of input names. The names are escaped when the command is generated and therefore the "%o" and "%f" should not be quoted.

Definition at line 209 of file BasicTypes.h.


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