#include <addrtranslate.h>
Public Member Functions | |
| virtual COMMON_EXPORT bool | refresh ()=0 |
| virtual COMMON_EXPORT | ~AddressTranslate () |
| COMMON_EXPORT PID | getPid () |
| COMMON_EXPORT bool | getLibAtAddress (Address addr, LoadedLib *&lib) |
| COMMON_EXPORT bool | getLibs (vector< LoadedLib * > &libs_) |
| COMMON_EXPORT bool | getArchLibs (vector< LoadedLib * > &olibs) |
| COMMON_EXPORT LoadedLib * | getLoadedLib (std::string name) |
| COMMON_EXPORT LoadedLib * | getLoadedLib (SymReader *sym) |
| COMMON_EXPORT LoadedLib * | getExecutable () |
| virtual COMMON_EXPORT Address | getLibraryTrapAddrSysV () |
| void | setReadAbort (bool b) |
Static Public Member Functions | |
| static COMMON_EXPORT 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 COMMON_EXPORT AddressTranslate * | createAddressTranslator (ProcessReader *reader_=NULL, SymbolReaderFactory *symfactory_=NULL, std::string exename=std::string(""), Address interp_base=(Address)-1) |
Protected Member Functions | |
| AddressTranslate (PID pid, PROC_HANDLE phand=INVALID_HANDLE_VALUE, std::string exename=std::string("")) | |
Protected Attributes | |
| PID | pid |
| PROC_HANDLE | phandle |
| bool | creation_error |
| vector< LoadedLib * > | libs |
| std::string | exec_name |
| LoadedLib * | exec |
| SymbolReaderFactory * | symfactory |
| bool | read_abort |
Definition at line 99 of file addrtranslate.h.
| AddressTranslate::AddressTranslate | ( | PID | pid, | |
| PROC_HANDLE | phand = INVALID_HANDLE_VALUE, |
|||
| std::string | exename = std::string("") | |||
| ) | [protected] |
Definition at line 38 of file addrtranslate.C.
| AddressTranslate::~AddressTranslate | ( | ) | [virtual] |
Definition at line 154 of file addrtranslate.C.
| AddressTranslate * AddressTranslate::createAddressTranslator | ( | ProcessReader * | reader_ = NULL, |
|
| SymbolReaderFactory * | symfactory_ = NULL, |
|||
| std::string | exename = std::string(""), |
|||
| Address | interp_base = (Address) -1 | |||
| ) | [static] |
Definition at line 216 of file addrtranslate-aix.C.
References 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] |
Definition at line 197 of file addrtranslate-aix.C.
References creation_error.
Referenced by Dyninst::SymtabAPI::AddressLookup::createAddressLookup(), and createAddressTranslator().
| COMMON_EXPORT bool Dyninst::AddressTranslate::getArchLibs | ( | vector< LoadedLib * > & | olibs | ) |
Referenced by Dyninst::AddressTranslateSysV::refresh().
| LoadedLib * AddressTranslate::getExecutable | ( | ) |
Definition at line 168 of file addrtranslate.C.
References 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 libs.
Referenced by Dyninst::SymtabAPI::AddressLookup::getOffset(), and Dyninst::SymtabAPI::AddressLookup::getSymbol().
| Address AddressTranslate::getLibraryTrapAddrSysV | ( | ) | [virtual] |
Reimplemented in Dyninst::AddressTranslateAIX, Dyninst::AddressTranslateSysV, and Dyninst::AddressTranslateWin.
Definition at line 269 of file addrtranslate.C.
Referenced by Dyninst::SymtabAPI::AddressLookup::getLibraryTrapAddrSysV().
| bool AddressTranslate::getLibs | ( | vector< LoadedLib * > & | libs_ | ) |
Definition at line 124 of file addrtranslate.C.
References libs.
Referenced by Dyninst::SymtabAPI::AddressLookup::getAllSymtabs(), Dyninst::SymtabAPI::AddressLookup::getLoadAddresses(), and Dyninst::SymtabAPI::AddressLookup::getLoadedLib().
| LoadedLib * AddressTranslate::getLoadedLib | ( | std::string | name | ) |
Definition at line 137 of file addrtranslate.C.
References libs.
| PID AddressTranslate::getPid | ( | ) |
Definition at line 132 of file addrtranslate.C.
References pid.
| virtual COMMON_EXPORT bool Dyninst::AddressTranslate::refresh | ( | ) | [pure virtual] |
Implemented in Dyninst::AddressTranslateAIX, AddressTranslateStatic, Dyninst::AddressTranslateSysV, and Dyninst::AddressTranslateWin.
Referenced by Dyninst::SymtabAPI::AddressLookup::refresh().
| void AddressTranslate::setReadAbort | ( | bool | b | ) |
Definition at line 149 of file addrtranslate.C.
References read_abort.
bool Dyninst::AddressTranslate::creation_error [protected] |
Definition at line 103 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateSysV::AddressTranslateSysV(), createAddressTranslator(), and Dyninst::AddressTranslateWin::init().
LoadedLib* Dyninst::AddressTranslate::exec [protected] |
Definition at line 108 of file addrtranslate.h.
Referenced by getExecutable(), Dyninst::AddressTranslateSysV::refresh(), and ~AddressTranslate().
std::string Dyninst::AddressTranslate::exec_name [protected] |
Definition at line 107 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateSysV::getExecName(), and Dyninst::AddressTranslateSysV::parseDTDebug().
vector<LoadedLib *> Dyninst::AddressTranslate::libs [protected] |
Definition at line 106 of file addrtranslate.h.
Referenced by getLibAtAddress(), getLibs(), getLoadedLib(), Dyninst::AddressTranslateWin::refresh(), Dyninst::AddressTranslateSysV::refresh(), Dyninst::AddressTranslateAIX::refresh(), and ~AddressTranslate().
PROC_HANDLE Dyninst::AddressTranslate::phandle [protected] |
Definition at line 102 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateWin::refresh().
PID Dyninst::AddressTranslate::pid [protected] |
Definition at line 101 of file addrtranslate.h.
Referenced by getPid(), Dyninst::AddressTranslateSysV::refresh(), Dyninst::AddressTranslateAIX::refresh(), and Dyninst::AddressTranslateSysV::setInterpreterBase().
bool Dyninst::AddressTranslate::read_abort [protected] |
Definition at line 110 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateSysV::refresh(), and setReadAbort().
SymbolReaderFactory* Dyninst::AddressTranslate::symfactory [protected] |
Definition at line 109 of file addrtranslate.h.
Referenced by Dyninst::AddressTranslateAIX::AddressTranslateAIX(), Dyninst::AddressTranslateSysV::AddressTranslateSysV(), Dyninst::AddressTranslateSysV::getLoadedLibByNameAddr(), Dyninst::AddressTranslateSysV::parseDTDebug(), and Dyninst::AddressTranslateSysV::setInterpreter().
1.6.1