#include <addrtranslate-sysv.h>
Definition at line 98 of file addrtranslate-sysv.h.
typedef std::map<std::pair<Address, std::string>, LoadedLib *, LibCmp> Dyninst::AddressTranslateSysV::sorted_libs_t [private] |
Definition at line 129 of file addrtranslate-sysv.h.
| AddressTranslateSysV::AddressTranslateSysV | ( | int | pid, | |
| ProcessReader * | reader_, | |||
| SymbolReaderFactory * | reader_fact, | |||
| std::string | exe_name, | |||
| Address | interp_base | |||
| ) |
Definition at line 405 of file addrtranslate-sysv.C.
References createDefaultDebugger(), Dyninst::AddressTranslate::creation_error, init(), interpreter_base, reader, set_interp_base, and Dyninst::AddressTranslate::symfactory.
| AddressTranslateSysV::AddressTranslateSysV | ( | ) |
Definition at line 388 of file addrtranslate-sysv.C.
| virtual Dyninst::AddressTranslateSysV::~AddressTranslateSysV | ( | ) | [inline, virtual] |
Definition at line 110 of file addrtranslate-sysv.h.
Definition at line 1034 of file addrtranslate-sysv.C.
References address_size, and translate_printf.
Referenced by getLoadedLibByNameAddr().
| AddressTranslate * AddressTranslate::createAddressTranslator | ( | ProcessReader * | reader_ = NULL, |
|
| SymbolReaderFactory * | symfactory_ = NULL, |
|||
| std::string | exename = std::string(""), |
|||
| Address | interp_base = (Address) -1 | |||
| ) | [static, inherited] |
Definition at line 216 of file addrtranslate-aix.C.
References Dyninst::AddressTranslate::createAddressTranslator().
| AddressTranslate * AddressTranslate::createAddressTranslator | ( | PID | pid_, | |
| ProcessReader * | reader_ = NULL, |
|||
| SymbolReaderFactory * | symfactory_ = NULL, |
|||
| PROC_HANDLE | phand = INVALID_HANDLE_VALUE, |
|||
| std::string | exename = std::string(""), |
|||
| Address | interp_base = (Address) -1 | |||
| ) | [static, inherited] |
Definition at line 197 of file addrtranslate-aix.C.
References Dyninst::AddressTranslate::creation_error.
Referenced by Dyninst::SymtabAPI::AddressLookup::createAddressLookup(), and Dyninst::AddressTranslate::createAddressTranslator().
| ProcessReader * Dyninst::AddressTranslateSysV::createDefaultDebugger | ( | int | pid | ) | [private] |
Definition at line 49 of file addrtranslate-bluegene.C.
Referenced by AddressTranslateSysV().
| LoadedLib * Dyninst::AddressTranslateSysV::getAOut | ( | ) | [private] |
Definition at line 86 of file addrtranslate-bluegene.C.
References getExecName().
Referenced by refresh().
| COMMON_EXPORT bool Dyninst::AddressTranslate::getArchLibs | ( | vector< LoadedLib * > & | olibs | ) | [inherited] |
Referenced by refresh().
| string AddressTranslateSysV::getExecName | ( | ) | [private] |
Definition at line 69 of file addrtranslate-bluegene.C.
References deref_link(), Dyninst::AddressTranslate::exec_name, and translate_printf.
Referenced by getAOut(), parseDTDebug(), refresh(), and setInterpreter().
| LoadedLib * AddressTranslate::getExecutable | ( | ) | [inherited] |
Definition at line 168 of file addrtranslate.C.
References Dyninst::AddressTranslate::exec.
Referenced by Dyninst::SymtabAPI::AddressLookup::getExecutable().
This code sets lower_lib_index and higher_lib_index to point to the indexes in libs[] that have dynamic section addresses that are the closest to the target address.
Let's search this list in a not-stupid order. We'll check lower_lib_index and higher_lib_index first (the -1 and -2 cases). If neither of those look right, then we'll just have to walk the entire list.
Definition at line 49 of file addrtranslate.C.
References Dyninst::LoadedLib::getDynamicAddr(), Dyninst::LoadedLib::getMappedRegions(), and Dyninst::AddressTranslate::libs.
Referenced by Dyninst::SymtabAPI::AddressLookup::getOffset(), and Dyninst::SymtabAPI::AddressLookup::getSymbol().
| Address AddressTranslateSysV::getLibraryTrapAddrSysV | ( | ) | [virtual] |
Reimplemented from Dyninst::AddressTranslate.
Definition at line 1023 of file addrtranslate-sysv.C.
References plat_getTrapAddr(), and real_trap_addr.
| bool AddressTranslate::getLibs | ( | vector< LoadedLib * > & | libs_ | ) | [inherited] |
Definition at line 124 of file addrtranslate.C.
References Dyninst::AddressTranslate::libs.
Referenced by Dyninst::SymtabAPI::AddressLookup::getAllSymtabs(), Dyninst::SymtabAPI::AddressLookup::getLoadAddresses(), and Dyninst::SymtabAPI::AddressLookup::getLoadedLib().
| LoadedLib * AddressTranslate::getLoadedLib | ( | std::string | name | ) | [inherited] |
Definition at line 137 of file addrtranslate.C.
References Dyninst::AddressTranslate::libs.
| LoadedLib * AddressTranslateSysV::getLoadedLibByNameAddr | ( | Address | addr, | |
| std::string | name | |||
| ) | [private] |
Definition at line 620 of file addrtranslate-sysv.C.
References adjustForAddrSpaceWrap(), Dyninst::LoadedLib::setFactory(), Dyninst::LoadedLib::setShouldClean(), sorted_libs, and Dyninst::AddressTranslate::symfactory.
Referenced by refresh().
| PID AddressTranslate::getPid | ( | ) | [inherited] |
Definition at line 132 of file addrtranslate.C.
References Dyninst::AddressTranslate::pid.
| Address AddressTranslateSysV::getTrapAddrFromRdebug | ( | ) | [private] |
Definition at line 643 of file addrtranslate-sysv.C.
References address_size, r_debug_dyn< r_debug_X >::is_valid(), r_debug_dyn< r_debug_X >::r_brk(), r_debug_addr, reader, and translate_printf.
Referenced by parseDTDebug(), and parseInterpreter().
| bool AddressTranslateSysV::init | ( | ) |
Definition at line 602 of file addrtranslate-sysv.C.
References parseDTDebug(), parseInterpreter(), r_debug_addr, translate_printf, and trap_addr.
Referenced by AddressTranslateSysV().
| bool AddressTranslateSysV::parseDTDebug | ( | ) | [private] |
Definition at line 441 of file addrtranslate-sysv.C.
References address_size, Dyninst::SymbolReaderFactory::closeSymbolReader(), Dyninst::ProcessReader::done(), Dyninst::AddressTranslate::exec_name, getExecName(), Dyninst::SymReader::getSegment(), getTrapAddrFromRdebug(), Dyninst::SymSegment::mem_addr, Dyninst::SymSegment::mem_size, Dyninst::SymReader::numSegments(), Dyninst::SymbolReaderFactory::openSymbolReader(), r_debug_addr, reader, Dyninst::ProcessReader::ReadMem(), setAddressSize(), Dyninst::ProcessReader::start(), Dyninst::AddressTranslate::symfactory, translate_printf, trap_addr, and Dyninst::SymSegment::type.
| bool AddressTranslateSysV::parseInterpreter | ( | ) | [private] |
Definition at line 548 of file addrtranslate-sysv.C.
References Dyninst::ProcessReader::done(), Dyninst::FCNode::get_r_debug(), Dyninst::FCNode::get_r_trap(), getTrapAddrFromRdebug(), interpreter, interpreter_base, r_debug_addr, reader, setAddressSize(), setInterpreter(), setInterpreterBase(), Dyninst::ProcessReader::start(), translate_printf, and trap_addr.
Referenced by init().
| bool AddressTranslateSysV::plat_getTrapAddr | ( | ) | [private] |
Definition at line 1029 of file addrtranslate-sysv.C.
References real_trap_addr, and trap_addr.
Referenced by getLibraryTrapAddrSysV().
| bool AddressTranslateSysV::refresh | ( | ) | [virtual] |
Implements Dyninst::AddressTranslate.
Definition at line 674 of file addrtranslate-sysv.C.
References address_size, deref_link(), Dyninst::ProcessReader::done(), Dyninst::LoadedLib::dynamic_addr, Dyninst::AddressTranslate::exec, getAOut(), Dyninst::AddressTranslate::getArchLibs(), Dyninst::LoadedLib::getCodeLoadAddr(), getExecName(), Dyninst::FCNode::getFilename(), getLinuxMaps(), getLoadedLibByNameAddr(), Dyninst::LoadedLib::getName(), interpreter, interpreter_base, link_map_xplat::is_valid(), r_debug_dyn< r_debug_X >::is_valid(), link_map_xplat::l_addr(), link_map_xplat::l_ld(), link_map_xplat::l_name(), Dyninst::AddressTranslate::libs, link_map_xplat::load_next(), NULL_PID, parseDTDebug(), maps_entries::path, Dyninst::AddressTranslate::pid, r_debug_addr, r_debug_dyn< r_debug_X >::r_map(), Dyninst::AddressTranslate::read_abort, reader, Dyninst::LoadedLib::setShouldClean(), sorted_libs, Dyninst::ProcessReader::start(), translate_printf, and trap_addr.
| bool Dyninst::AddressTranslateSysV::setAddressSize | ( | ) | [private] |
Definition at line 54 of file addrtranslate-bluegene.C.
References address_size, and translate_printf.
Referenced by parseDTDebug(), and parseInterpreter().
| bool Dyninst::AddressTranslateSysV::setInterpreter | ( | ) | [private] |
Definition at line 92 of file addrtranslate-bluegene.C.
References Dyninst::files, getExecName(), Dyninst::FCNode::getInterpreter(), Dyninst::FileCache::getNode(), interpreter, Dyninst::FCNode::markInterpreter(), Dyninst::AddressTranslate::symfactory, and translate_printf.
Referenced by parseInterpreter().
| bool AddressTranslateSysV::setInterpreterBase | ( | ) | [private] |
Definition at line 45 of file addrtranslate-auxv.C.
References address_size, AuxvParser::createAuxvParser(), AuxvParser::getInterpreterBase(), AuxvParser::getPageSize(), AuxvParser::getProgramBase(), interpreter_base, page_size, Dyninst::AddressTranslate::pid, program_base, and set_interp_base.
Referenced by parseInterpreter().
| void AddressTranslate::setReadAbort | ( | bool | b | ) | [inherited] |
Definition at line 149 of file addrtranslate.C.
References Dyninst::AddressTranslate::read_abort.
int Dyninst::AddressTranslateSysV::address_size [private] |
Definition at line 118 of file addrtranslate-sysv.h.
Referenced by adjustForAddrSpaceWrap(), getTrapAddrFromRdebug(), parseDTDebug(), refresh(), setAddressSize(), and setInterpreterBase().
bool Dyninst::AddressTranslate::creation_error [protected, inherited] |
Definition at line 103 of file addrtranslate.h.
Referenced by AddressTranslateSysV(), Dyninst::AddressTranslate::createAddressTranslator(), and Dyninst::AddressTranslateWin::init().
unsigned Dyninst::AddressTranslateSysV::current_r_state [private] |
Definition at line 122 of file addrtranslate-sysv.h.
LoadedLib* Dyninst::AddressTranslate::exec [protected, inherited] |
Definition at line 108 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslate::getExecutable(), refresh(), and Dyninst::AddressTranslate::~AddressTranslate().
std::string Dyninst::AddressTranslate::exec_name [protected, inherited] |
Definition at line 107 of file addrtranslate.h.
Referenced by getExecName(), and parseDTDebug().
FCNode* Dyninst::AddressTranslateSysV::interpreter [private] |
Definition at line 119 of file addrtranslate-sysv.h.
Referenced by parseInterpreter(), refresh(), and setInterpreter().
Definition at line 114 of file addrtranslate-sysv.h.
Referenced by AddressTranslateSysV(), parseInterpreter(), refresh(), and setInterpreterBase().
vector<LoadedLib *> Dyninst::AddressTranslate::libs [protected, inherited] |
Definition at line 106 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslate::getLibAtAddress(), Dyninst::AddressTranslate::getLibs(), Dyninst::AddressTranslate::getLoadedLib(), Dyninst::AddressTranslateWin::refresh(), refresh(), Dyninst::AddressTranslateAIX::refresh(), and Dyninst::AddressTranslate::~AddressTranslate().
Definition at line 116 of file addrtranslate-sysv.h.
Referenced by setInterpreterBase().
PROC_HANDLE Dyninst::AddressTranslate::phandle [protected, inherited] |
Definition at line 102 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateWin::refresh().
PID Dyninst::AddressTranslate::pid [protected, inherited] |
Definition at line 101 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslate::getPid(), refresh(), Dyninst::AddressTranslateAIX::refresh(), and setInterpreterBase().
unsigned Dyninst::AddressTranslateSysV::previous_r_state [private] |
Definition at line 121 of file addrtranslate-sysv.h.
Definition at line 115 of file addrtranslate-sysv.h.
Referenced by setInterpreterBase().
Definition at line 124 of file addrtranslate-sysv.h.
Referenced by getTrapAddrFromRdebug(), init(), parseDTDebug(), parseInterpreter(), and refresh().
bool Dyninst::AddressTranslate::read_abort [protected, inherited] |
Definition at line 110 of file addrtranslate.h.
Referenced by refresh(), and Dyninst::AddressTranslate::setReadAbort().
Definition at line 110 of file addrtranslate-sysv.h.
Referenced by AddressTranslateSysV(), getTrapAddrFromRdebug(), parseDTDebug(), parseInterpreter(), and refresh().
Definition at line 151 of file addrtranslate-sysv.h.
Referenced by getLibraryTrapAddrSysV(), and plat_getTrapAddr().
bool Dyninst::AddressTranslateSysV::set_interp_base [private] |
Definition at line 117 of file addrtranslate-sysv.h.
Referenced by AddressTranslateSysV(), and setInterpreterBase().
Definition at line 130 of file addrtranslate-sysv.h.
Referenced by getLoadedLibByNameAddr(), and refresh().
SymbolReaderFactory* Dyninst::AddressTranslate::symfactory [protected, inherited] |
Definition at line 109 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateAIX::AddressTranslateAIX(), AddressTranslateSysV(), getLoadedLibByNameAddr(), parseDTDebug(), and setInterpreter().
Definition at line 125 of file addrtranslate-sysv.h.
Referenced by init(), parseDTDebug(), parseInterpreter(), plat_getTrapAddr(), and refresh().
1.6.1