ROSE
0.11.109.0
|
Settings for loading specimens.
The runtime descriptions and command-line parser for these switches can be obtained from Engine::loaderSwitches.
Definition at line 228 of file BinaryAnalysis/Partitioner2/BasicTypes.h.
#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
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... | |
std::vector< std::string > | envEraseNames |
List of environment variable names that should be removed before launching a "run:" specimen. More... | |
std::vector< boost::regex > | envErasePatterns |
List of regular expressions for removing environment variables before launching a "run:" specimen. More... | |
std::vector< std::string > | envInsert |
List of environment variable names and values to be inserted before launching a "run:" specimen. More... | |
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 229 of file BinaryAnalysis/Partitioner2/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 236 of file BinaryAnalysis/Partitioner2/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 238 of file BinaryAnalysis/Partitioner2/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 240 of file BinaryAnalysis/Partitioner2/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 processing related to removing execution permission from areas of memory containing only zero values.
Definition at line 244 of file BinaryAnalysis/Partitioner2/BasicTypes.h.
bool Rose::BinaryAnalysis::Partitioner2::LoaderSettings::linkObjectFiles |
Link object files before parsing.
Definition at line 251 of file BinaryAnalysis/Partitioner2/BasicTypes.h.
bool Rose::BinaryAnalysis::Partitioner2::LoaderSettings::linkStaticArchives |
Link static libraries before parsing.
Definition at line 252 of file BinaryAnalysis/Partitioner2/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 253 of file BinaryAnalysis/Partitioner2/BasicTypes.h.
std::vector<std::string> Rose::BinaryAnalysis::Partitioner2::LoaderSettings::envEraseNames |
List of environment variable names that should be removed before launching a "run:" specimen.
These names are matched exactly.
Definition at line 262 of file BinaryAnalysis/Partitioner2/BasicTypes.h.
std::vector<boost::regex> Rose::BinaryAnalysis::Partitioner2::LoaderSettings::envErasePatterns |
List of regular expressions for removing environment variables before launching a "run:" specimen.
The expressions match only the variable name, not its value.
Definition at line 264 of file BinaryAnalysis/Partitioner2/BasicTypes.h.
std::vector<std::string> Rose::BinaryAnalysis::Partitioner2::LoaderSettings::envInsert |
List of environment variable names and values to be inserted before launching a "run:" specimen.
Each string must contain an equal sign that separates the name from the value (the first "=" if more than one.
Definition at line 267 of file BinaryAnalysis/Partitioner2/BasicTypes.h.