Dyninst::AddressTranslateSysV Class Reference

#include <addrtranslate-sysv.h>

Inheritance diagram for Dyninst::AddressTranslateSysV:
Dyninst::AddressTranslate

Public Member Functions

bool init ()
virtual bool refresh ()
virtual Address getLibraryTrapAddrSysV ()
 AddressTranslateSysV (int pid, ProcessReader *reader_, SymbolReaderFactory *reader_fact, std::string exe_name, Address interp_base)
 AddressTranslateSysV ()
virtual ~AddressTranslateSysV ()
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 LoadedLibgetLoadedLib (std::string name)
COMMON_EXPORT LoadedLibgetLoadedLib (SymReader *sym)
COMMON_EXPORT LoadedLibgetExecutable ()
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 Attributes

PID pid
PROC_HANDLE phandle
bool creation_error
vector< LoadedLib * > libs
std::string exec_name
LoadedLibexec
SymbolReaderFactorysymfactory
bool read_abort

Private Types

typedef std::map< std::pair
< Address, std::string >
, LoadedLib *, LibCmp
sorted_libs_t

Private Member Functions

Address getTrapAddrFromRdebug ()
LoadedLibgetLoadedLibByNameAddr (Address addr, std::string name)
std::string getExecName ()
ProcessReadercreateDefaultDebugger (int pid)
bool parseDTDebug ()
bool parseInterpreter ()
bool setInterpreter ()
bool setAddressSize ()
bool setInterpreterBase ()
LoadedLibgetAOut ()
bool plat_getTrapAddr ()
Address adjustForAddrSpaceWrap (Address addr, std::string name)

Private Attributes

ProcessReaderreader
Address interpreter_base
Address program_base
Address page_size
bool set_interp_base
int address_size
FCNodeinterpreter
unsigned previous_r_state
unsigned current_r_state
Address r_debug_addr
Address trap_addr
sorted_libs_t sorted_libs
Address real_trap_addr

Detailed Description

Definition at line 98 of file addrtranslate-sysv.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

AddressTranslateSysV::AddressTranslateSysV ( int  pid,
ProcessReader reader_,
SymbolReaderFactory reader_fact,
std::string  exe_name,
Address  interp_base 
)
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.


Member Function Documentation

Address AddressTranslateSysV::adjustForAddrSpaceWrap ( Address  addr,
std::string  name 
) [private]

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]
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]
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]
LoadedLib * AddressTranslate::getExecutable (  )  [inherited]
bool AddressTranslate::getLibAtAddress ( Address  addr,
LoadedLib *&  lib 
) [inherited]

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]
COMMON_EXPORT LoadedLib* Dyninst::AddressTranslate::getLoadedLib ( SymReader sym  )  [inherited]
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]
PID AddressTranslate::getPid (  )  [inherited]

Definition at line 132 of file addrtranslate.C.

References Dyninst::AddressTranslate::pid.

Address AddressTranslateSysV::getTrapAddrFromRdebug (  )  [private]
bool AddressTranslateSysV::init (  ) 
bool AddressTranslateSysV::parseDTDebug (  )  [private]
bool AddressTranslateSysV::parseInterpreter (  )  [private]
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]
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]
bool AddressTranslateSysV::setInterpreterBase (  )  [private]
void AddressTranslate::setReadAbort ( bool  b  )  [inherited]

Definition at line 149 of file addrtranslate.C.

References Dyninst::AddressTranslate::read_abort.


Field Documentation

bool Dyninst::AddressTranslate::creation_error [protected, inherited]

Definition at line 122 of file addrtranslate-sysv.h.

LoadedLib* Dyninst::AddressTranslate::exec [protected, inherited]
std::string Dyninst::AddressTranslate::exec_name [protected, inherited]

Definition at line 107 of file addrtranslate.h.

Referenced by getExecName(), and parseDTDebug().

Definition at line 119 of file addrtranslate-sysv.h.

Referenced by parseInterpreter(), refresh(), and setInterpreter().

vector<LoadedLib *> Dyninst::AddressTranslate::libs [protected, inherited]

Definition at line 116 of file addrtranslate-sysv.h.

Referenced by setInterpreterBase().

Definition at line 102 of file addrtranslate.h.

Referenced by Dyninst::AddressTranslateWin::refresh().

PID Dyninst::AddressTranslate::pid [protected, inherited]

Definition at line 121 of file addrtranslate-sysv.h.

Definition at line 115 of file addrtranslate-sysv.h.

Referenced by setInterpreterBase().

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 151 of file addrtranslate-sysv.h.

Referenced by getLibraryTrapAddrSysV(), and plat_getTrapAddr().

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().

Definition at line 125 of file addrtranslate-sysv.h.

Referenced by init(), parseDTDebug(), parseInterpreter(), plat_getTrapAddr(), and refresh().


The documentation for this class was generated from the following files:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1