#include <AddrLookup.h>
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) |
| LoadedLib * | getLoadedLib (Symtab *sym) |
| Dyninst::Address | symToAddress (LoadedLib *ll, Symbol *sym) |
| Symtab * | getSymtab (LoadedLib *) |
Private Attributes | |
| AddressTranslate * | translator |
| 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 |
Definition at line 50 of file AddrLookup.h.
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.
| 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.
| AN_INLINE bool Dyninst::AnnotatableSparse::addAnnotation | ( | const T * | a, | |
| AnnotationClass< T > & | a_id | |||
| ) | [inline, inherited] |
Definition at line 754 of file Annotatable.h.
References Dyninst::annotatable_printf(), FILE__, fprintf, Dyninst::getExistingOutputSB(), Dyninst::AnnotationClassBase::getID(), Dyninst::AnnotationClassBase::getName(), Dyninst::AnnotationClassBase::getSerializeFunc(), Dyninst::ser_operation(), Dyninst::serialize_post_annotation(), Dyninst::sp_add_anno, and Dyninst::sparse.
Referenced by Dyninst::SymtabAPI::parseStabString().
| void Dyninst::AnnotatableSparse::annotationsReport | ( | ) | [inline, inherited] |
Definition at line 932 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, and getTypeName().
| 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] |
Definition at line 49 of file AddrLookup.C.
References AddressLookup(), Dyninst::AddressTranslate::createAddressTranslator(), and Dyninst::SymtabAPI::getSymtabReaderFactory().
| AddressLookup * AddressLookup::createAddressLookup | ( | ProcessReader * | reader = NULL |
) | [static] |
Definition at line 62 of file AddrLookup.C.
References AddressLookup(), Dyninst::AddressTranslate::createAddressTranslator(), and Dyninst::SymtabAPI::getSymtabReaderFactory().
Definition at line 81 of file AddrLookup.C.
References getLoadedLib(), and Dyninst::LoadedLib::offToAddress().
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.
| AN_INLINE bool Dyninst::AnnotatableSparse::getAnnotation | ( | T *& | a, | |
| AnnotationClass< T > & | a_id | |||
| ) | const [inline, inherited] |
Definition at line 818 of file Annotatable.h.
Referenced by Dyninst::SymtabAPI::Function::addLocalVar(), Dyninst::SymtabAPI::Function::addParam(), Dyninst::SymtabAPI::Symtab::addUserRegion(), Dyninst::SymtabAPI::Symtab::addUserType(), Dyninst::SymtabAPI::Function::findLocalVariable(), Dyninst::SymtabAPI::Symtab::getAllNewRegions(), Dyninst::SymtabAPI::Function::getLocalVariables(), Dyninst::SymtabAPI::Function::getParams(), Dyninst::SymtabAPI::Symbol::getVersionFileName(), Dyninst::SymtabAPI::Symbol::getVersions(), Dyninst::SymtabAPI::parseStabString(), Dyninst::SymtabAPI::Function::setupParams(), Dyninst::SymtabAPI::Symbol::setVersionFileName(), Dyninst::SymtabAPI::Symbol::setVersions(), Dyninst::SymtabAPI::Function::~Function(), Dyninst::SymtabAPI::Symbol::~Symbol(), and Dyninst::SymtabAPI::Symtab::~Symtab().
Definition at line 244 of file AddrLookup.C.
References Dyninst::LoadedLib::getDataLoadAddr(), and getLoadedLib().
| bool AddressLookup::getExecutable | ( | LoadedLibrary & | lib | ) |
Definition at line 289 of file AddrLookup.C.
References Dyninst::SymtabAPI::LoadedLibrary::codeAddr, Dyninst::SymtabAPI::LoadedLibrary::dataAddr, Dyninst::AddressTranslate::getExecutable(), Dyninst::LoadedLib::getOutputs(), Dyninst::SymtabAPI::LoadedLibrary::name, and translator.
| Address AddressLookup::getLibraryTrapAddrSysV | ( | ) |
Definition at line 270 of file AddrLookup.C.
References Dyninst::AddressTranslate::getLibraryTrapAddrSysV(), and translator.
Definition at line 235 of file AddrLookup.C.
References Dyninst::LoadedLib::getCodeLoadAddr(), and getLoadedLib().
| bool AddressLookup::getLoadAddresses | ( | std::vector< LoadedLibrary > & | name_addrs | ) |
Definition at line 253 of file AddrLookup.C.
References Dyninst::SymtabAPI::LoadedLibrary::codeAddr, Dyninst::SymtabAPI::LoadedLibrary::dataAddr, Dyninst::AddressTranslate::getLibs(), Dyninst::SymtabAPI::LoadedLibrary::name, and translator.
Definition at line 303 of file AddrLookup.C.
References Dyninst::SymtabAPI::Symtab::file(), Dyninst::AddressTranslate::getLibs(), Dyninst::LoadedLib::getName(), ll_to_sym, Dyninst::SymtabAPI::Symtab::name(), sym_to_ll, and translator.
Referenced by getAddress(), getDataLoadAddress(), and getLoadAddress().
| bool AddressLookup::getOffset | ( | Address | addr, | |
| LoadedLibrary & | lib, | |||
| Offset & | off | |||
| ) |
Definition at line 139 of file AddrLookup.C.
References Dyninst::LoadedLib::addrToOffset(), Dyninst::SymtabAPI::LoadedLibrary::codeAddr, Dyninst::SymtabAPI::LoadedLibrary::dataAddr, Dyninst::LoadedLib::getCodeLoadAddr(), Dyninst::LoadedLib::getDataLoadAddr(), Dyninst::AddressTranslate::getLibAtAddress(), Dyninst::LoadedLib::getName(), Dyninst::SymtabAPI::LoadedLibrary::name, and translator.
Definition at line 124 of file AddrLookup.C.
References Dyninst::LoadedLib::addrToOffset(), Dyninst::AddressTranslate::getLibAtAddress(), getSymtab(), and translator.
Definition at line 156 of file AddrLookup.C.
References Dyninst::LoadedLib::addrToOffset(), Dyninst::AddressTranslate::getLibAtAddress(), getSymsVector(), getSymtab(), and translator.
Definition at line 104 of file AddrLookup.C.
References Dyninst::SymtabAPI::Symtab::getAllSymbolsByType(), Dyninst::LoadedLib::getName(), getSymtab(), sort_by_addr(), Dyninst::SymtabAPI::Symbol::ST_UNKNOWN, and syms.
| int Dyninst::SymtabAPI::AddressLookup::getSymsVector | ( | std::string | str | ) | [private] |
Referenced by getSymbol().
Definition at line 325 of file AddrLookup.C.
References Dyninst::LoadedLib::getName(), ll_to_sym, Dyninst::SymtabAPI::Symtab::openFile(), and sym_to_ll.
Referenced by getAllSymtabs(), getOffset(), getSymbol(), and getSymsVector().
| bool Dyninst::AnnotatableSparse::operator== | ( | AnnotatableSparse & | cmp | ) | [inline, inherited] |
Definition at line 668 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, Dyninst::AnnotatableSparse::getAnnos(), and Dyninst::AnnotationClassBase::getCmpFunc().
| bool AddressLookup::refresh | ( | ) |
Definition at line 284 of file AddrLookup.C.
References Dyninst::AddressTranslate::refresh(), and translator.
| bool Dyninst::AnnotatableSparse::removeAnnotation | ( | AnnotationClass< T > & | a_id | ) | [inline, inherited] |
Definition at line 843 of file Annotatable.h.
References Dyninst::annotation_debug_flag(), FILE__, fprintf, Dyninst::AnnotationClassBase::getID(), and Dyninst::AnnotationClassBase::getName().
Referenced by Dyninst::SymtabAPI::Function::~Function(), and Dyninst::SymtabAPI::Symbol::~Symbol().
| void Dyninst::AnnotatableSparse::serializeAnnotations | ( | SerializerBase * | sb, | |
| const char * | ||||
| ) | [inline, inherited] |
Definition at line 869 of file Annotatable.h.
References Dyninst::ser_rec_t::acb, Dyninst::add_annotations(), Dyninst::ser_rec_t::data, FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, Dyninst::get_serializer_index(), Dyninst::AnnotationClassBase::getSerializeFunc(), Dyninst::is_input(), Dyninst::is_output(), Dyninst::ser_rec_t::parent_id, Dyninst::serialize_annotation_list(), Dyninst::ser_rec_t::sod, and Dyninst::sparse.
| Dyninst::Address AddressLookup::symToAddress | ( | LoadedLib * | ll, | |
| Symbol * | sym | |||
| ) | [private] |
Definition at line 298 of file AddrLookup.C.
References Dyninst::LoadedLib::getCodeLoadAddr(), and Dyninst::SymtabAPI::Symbol::getOffset().
Referenced by getAddress().
std::map<LoadedLib *, Symtab *> Dyninst::SymtabAPI::AddressLookup::ll_to_sym [private] |
Definition at line 60 of file AddrLookup.h.
Referenced by getLoadedLib(), and getSymtab().
std::map<Symtab *, LoadedLib *> Dyninst::SymtabAPI::AddressLookup::sym_to_ll [private] |
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().
Definition at line 53 of file AddrLookup.h.
Referenced by getAllSymtabs(), getExecutable(), getLibraryTrapAddrSysV(), getLoadAddresses(), getLoadedLib(), getOffset(), getSymbol(), and refresh().
1.6.1