Dyninst::SymtabAPI::AddressLookup Class Reference

#include <AddrLookup.h>

Inheritance diagram for Dyninst::SymtabAPI::AddressLookup:
Dyninst::AnnotatableSparse

Public Types

typedef dyn_hash_map< void
*, void *, void_ptr_hasher
annos_by_type_t
typedef std::vector
< annos_by_type_t * > 
annos_t

Public Member Functions

SYMTAB_EXPORT bool getAddress (Symtab *tab, Symbol *sym, Address &addr)
SYMTAB_EXPORT bool getAddress (Symtab *tab, Offset off, Address &addr)
SYMTAB_EXPORT bool getSymbol (Address addr, Symbol *&sym, Symtab *&tab, bool close=false)
SYMTAB_EXPORT bool getOffset (Address addr, Symtab *&tab, Offset &off)
SYMTAB_EXPORT bool getAllSymtabs (std::vector< Symtab * > &tabs)
SYMTAB_EXPORT bool getLoadAddress (Symtab *sym, Address &load_addr)
SYMTAB_EXPORT bool getDataLoadAddress (Symtab *sym, Address &load_addr)
SYMTAB_EXPORT bool getLoadAddresses (std::vector< LoadedLibrary > &name_addrs)
SYMTAB_EXPORT bool getExecutable (LoadedLibrary &lib)
SYMTAB_EXPORT bool getOffset (Address addr, LoadedLibrary &lib, Offset &off)
SYMTAB_EXPORT bool refresh ()
SYMTAB_EXPORT Address getLibraryTrapAddrSysV ()
virtual SYMTAB_EXPORT ~AddressLookup ()
template<class T >
AN_INLINE bool addAnnotation (const T *a, AnnotationClass< T > &a_id)
bool operator== (AnnotatableSparse &cmp)
template<class T >
AN_INLINE bool getAnnotation (T *&a, AnnotationClass< T > &a_id) const
template<class T >
bool removeAnnotation (AnnotationClass< T > &a_id)
void serializeAnnotations (SerializerBase *sb, const char *)
void annotationsReport ()

Static Public Member Functions

static SYMTAB_EXPORT
AddressLookup
createAddressLookup (ProcessReader *reader=NULL)
static SYMTAB_EXPORT
AddressLookup
createAddressLookup (PID pid, ProcessReader *reader=NULL)
static SYMTAB_EXPORT
AddressLookup
createAddressLookup (const std::vector< LoadedLibrary > &name_addrs)

Private Member Functions

 AddressLookup (AddressTranslate *trans)
int getSymsVector (std::string str)
std::vector< Symbol * > * getSymsVector (LoadedLib *lib)
LoadedLibgetLoadedLib (Symtab *sym)
Dyninst::Address symToAddress (LoadedLib *ll, Symbol *sym)
SymtabgetSymtab (LoadedLib *)

Private Attributes

AddressTranslatetranslator
std::map< Symtab *, LoadedLib * > sym_to_ll
std::map< LoadedLib *, Symtab * > ll_to_sym

Static Private Attributes

static dyn_hash_map
< std::string, std::vector
< Symbol * > > 
syms

Detailed Description

Definition at line 50 of file AddrLookup.h.


Member Typedef Documentation

typedef dyn_hash_map<void *, void *, void_ptr_hasher> Dyninst::AnnotatableSparse::annos_by_type_t [inherited]

Definition at line 505 of file Annotatable.h.

typedef std::vector<annos_by_type_t *> Dyninst::AnnotatableSparse::annos_t [inherited]

Definition at line 508 of file Annotatable.h.


Constructor & Destructor Documentation

AddressLookup::AddressLookup ( AddressTranslate trans  )  [private]

Definition at line 275 of file AddrLookup.C.

Referenced by createAddressLookup().

AddressLookup::~AddressLookup (  )  [virtual]

Definition at line 280 of file AddrLookup.C.


Member Function Documentation

template<class T >
AN_INLINE bool Dyninst::AnnotatableSparse::addAnnotation ( const T *  a,
AnnotationClass< T > &  a_id 
) [inline, inherited]
void Dyninst::AnnotatableSparse::annotationsReport (  )  [inline, inherited]
AddressLookup * AddressLookup::createAddressLookup ( const std::vector< LoadedLibrary > &  name_addrs  )  [static]

Definition at line 75 of file AddrLookup.C.

AddressLookup * AddressLookup::createAddressLookup ( PID  pid,
ProcessReader reader = NULL 
) [static]
AddressLookup * AddressLookup::createAddressLookup ( ProcessReader reader = NULL  )  [static]
bool AddressLookup::getAddress ( Symtab tab,
Offset  off,
Address addr 
)

Definition at line 81 of file AddrLookup.C.

References getLoadedLib(), and Dyninst::LoadedLib::offToAddress().

bool AddressLookup::getAddress ( Symtab tab,
Symbol sym,
Address addr 
)

Definition at line 90 of file AddrLookup.C.

References getLoadedLib(), and symToAddress().

bool AddressLookup::getAllSymtabs ( std::vector< Symtab * > &  tabs  ) 

Definition at line 218 of file AddrLookup.C.

References Dyninst::AddressTranslate::getLibs(), getSymtab(), and translator.

template<class T >
AN_INLINE bool Dyninst::AnnotatableSparse::getAnnotation ( T *&  a,
AnnotationClass< T > &  a_id 
) const [inline, inherited]
bool AddressLookup::getDataLoadAddress ( Symtab sym,
Address load_addr 
)

Definition at line 244 of file AddrLookup.C.

References Dyninst::LoadedLib::getDataLoadAddr(), and getLoadedLib().

bool AddressLookup::getExecutable ( LoadedLibrary lib  ) 
Address AddressLookup::getLibraryTrapAddrSysV (  ) 
bool AddressLookup::getLoadAddress ( Symtab sym,
Address load_addr 
)

Definition at line 235 of file AddrLookup.C.

References Dyninst::LoadedLib::getCodeLoadAddr(), and getLoadedLib().

bool AddressLookup::getLoadAddresses ( std::vector< LoadedLibrary > &  name_addrs  ) 
LoadedLib * AddressLookup::getLoadedLib ( Symtab sym  )  [private]
bool AddressLookup::getOffset ( Address  addr,
LoadedLibrary lib,
Offset off 
)
bool AddressLookup::getOffset ( Address  addr,
Symtab *&  tab,
Offset off 
)
bool AddressLookup::getSymbol ( Address  addr,
Symbol *&  sym,
Symtab *&  tab,
bool  close = false 
)
vector< Symbol * > * AddressLookup::getSymsVector ( LoadedLib lib  )  [private]
int Dyninst::SymtabAPI::AddressLookup::getSymsVector ( std::string  str  )  [private]

Referenced by getSymbol().

Symtab * AddressLookup::getSymtab ( LoadedLib ll  )  [private]
bool Dyninst::AnnotatableSparse::operator== ( AnnotatableSparse cmp  )  [inline, inherited]
bool AddressLookup::refresh (  ) 

Definition at line 284 of file AddrLookup.C.

References Dyninst::AddressTranslate::refresh(), and translator.

template<class T >
bool Dyninst::AnnotatableSparse::removeAnnotation ( AnnotationClass< T > &  a_id  )  [inline, inherited]
void Dyninst::AnnotatableSparse::serializeAnnotations ( SerializerBase sb,
const char *   
) [inline, inherited]
Dyninst::Address AddressLookup::symToAddress ( LoadedLib ll,
Symbol sym 
) [private]

Field Documentation

Definition at line 60 of file AddrLookup.h.

Referenced by getLoadedLib(), and getSymtab().

Definition at line 59 of file AddrLookup.h.

Referenced by getLoadedLib(), and getSymtab().

dyn_hash_map< string, std::vector< Symbol * > > AddressLookup::syms [static, private]

Definition at line 55 of file AddrLookup.h.

Referenced by getSymsVector().


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