#include <Symtab.h>
Public Types | |
| enum | { pltrel = 1, dynrel = 2 } |
| 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 | relocationEntry () |
| SYMTAB_EXPORT | relocationEntry (Offset ta, Offset ra, Offset add, std::string n, Symbol *dynref=NULL, unsigned long relType=0) |
| SYMTAB_EXPORT | relocationEntry (Offset ta, Offset ra, std::string n, Symbol *dynref=NULL, unsigned long relType=0) |
| SYMTAB_EXPORT | relocationEntry (Offset ra, std::string n, Symbol *dynref=NULL, unsigned long relType=0, Region::RegionType rtype=Region::RT_REL) |
| SYMTAB_EXPORT | relocationEntry (Offset ta, Offset ra, Offset add, std::string n, Symbol *dynref=NULL, unsigned long relType=0, Region::RegionType rtype=Region::RT_REL) |
| SYMTAB_EXPORT Serializable * | serialize_impl (SerializerBase *sb, const char *tag="relocationEntry") THROW_SPEC(SerializerError) |
| SYMTAB_EXPORT Offset | target_addr () const |
| SYMTAB_EXPORT Offset | rel_addr () const |
| SYMTAB_EXPORT Offset | addend () const |
| SYMTAB_EXPORT Region::RegionType | regionType () const |
| SYMTAB_EXPORT const std::string & | name () const |
| SYMTAB_EXPORT Symbol * | getDynSym () const |
| SYMTAB_EXPORT bool | addDynSym (Symbol *dynref) |
| SYMTAB_EXPORT unsigned long | getRelType () const |
| SYMTAB_EXPORT void | setTargetAddr (const Offset) |
| SYMTAB_EXPORT void | setRelAddr (const Offset) |
| SYMTAB_EXPORT void | setAddend (const Offset) |
| SYMTAB_EXPORT void | setRegionType (const Region::RegionType) |
| SYMTAB_EXPORT void | setName (const std::string &newName) |
| SYMTAB_EXPORT void | setRelType (unsigned long relType) |
| SYMTAB_EXPORT bool | operator== (const relocationEntry &) const |
| 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 unsigned long | getGlobalRelType (unsigned addressWidth, Symbol *sym=NULL) |
| static const char * | relType2Str (unsigned long r, unsigned addressWidth=sizeof(Address)) |
Data Fields | |
| enum Dyninst::SymtabAPI::relocationEntry:: { ... } | relocationType |
Private Attributes | |
| Offset | target_addr_ |
| Offset | rel_addr_ |
| Offset | addend_ |
| Region::RegionType | rtype_ |
| std::string | name_ |
| Symbol * | dynref_ |
| unsigned long | relType_ |
| Offset | rel_struct_addr_ |
Friends | |
| SYMTAB_EXPORT std::ostream & | operator<< (std::ostream &os, const relocationEntry &q) |
Definition at line 657 of file Symtab.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.
| SYMTAB_EXPORT relocationEntry::relocationEntry | ( | Offset | ra, | |
| std::string | n, | |||
| Symbol * | dynref = NULL, |
|||
| unsigned long | relType = 0, |
|||
| Region::RegionType | rtype = Region::RT_REL | |||
| ) |
| SYMTAB_EXPORT relocationEntry::relocationEntry | ( | Offset | ta, | |
| Offset | ra, | |||
| Offset | add, | |||
| std::string | n, | |||
| Symbol * | dynref = NULL, |
|||
| unsigned long | relType = 0, |
|||
| Region::RegionType | rtype = Region::RT_REL | |||
| ) |
| 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().
| SYMTAB_EXPORT bool relocationEntry::addDynSym | ( | Symbol * | dynref | ) |
Definition at line 3350 of file Symtab.C.
References dynref_.
Referenced by Dyninst::SymtabAPI::Object::get_relocation_entries(), Dyninst::SymtabAPI::Object::get_relocationDyn_entries(), and Dyninst::SymtabAPI::Region::updateRelocations().
| SYMTAB_EXPORT Offset relocationEntry::addend | ( | ) | const |
Definition at line 3366 of file Symtab.C.
References addend_.
Referenced by Dyninst::SymtabAPI::emitElfStatic::archSpecificRelocation(), and Dyninst::SymtabAPI::emitElfUtils::updateRelocation().
| void Dyninst::AnnotatableSparse::annotationsReport | ( | ) | [inline, inherited] |
Definition at line 932 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, and getTypeName().
| 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().
| SYMTAB_EXPORT Symbol * relocationEntry::getDynSym | ( | ) | const |
Definition at line 3345 of file Symtab.C.
References dynref_.
Referenced by Dyninst::SymtabAPI::emitElfStatic::archSpecificRelocation(), Dyninst::SymtabAPI::emitElfStatic::handleInterModuleSpecialCase(), and Dyninst::SymtabAPI::Region::updateRelocations().
| unsigned long relocationEntry::getGlobalRelType | ( | unsigned | addressWidth, | |
| Symbol * | sym = NULL | |||
| ) | [static] |
Definition at line 142 of file relocationEntry-elf-ppc32.C.
| SYMTAB_EXPORT unsigned long relocationEntry::getRelType | ( | ) | const |
Definition at line 3361 of file Symtab.C.
References relType_.
Referenced by Dyninst::SymtabAPI::emitElfStatic::archSpecificRelocation(), and Dyninst::SymtabAPI::emitElfUtils::updateRelocation().
| SYMTAB_EXPORT const string & relocationEntry::name | ( | ) | const |
Definition at line 3340 of file Symtab.C.
References name_.
Referenced by Dyninst::SymtabAPI::emitElfStatic::archSpecificRelocation(), and computeCtorDtorAddress().
| 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 relocationEntry::operator== | ( | const relocationEntry & | r | ) | const |
Definition at line 3385 of file Symtab.C.
References addend_, dynref_, Dyninst::SymtabAPI::Symbol::getMangledName(), Dyninst::SymtabAPI::Symbol::getOffset(), name_, rel_addr_, relType_, rtype_, and target_addr_.
| SYMTAB_EXPORT Region::RegionType relocationEntry::regionType | ( | ) | const |
Definition at line 3356 of file Symtab.C.
References rtype_.
Referenced by Dyninst::SymtabAPI::emitElfStatic::archSpecificRelocation().
| SYMTAB_EXPORT Offset relocationEntry::rel_addr | ( | ) | const |
Definition at line 3330 of file Symtab.C.
References rel_addr_.
Referenced by Dyninst::SymtabAPI::emitElfUtils::updateRelocation(), and Dyninst::SymtabAPI::Region::updateRelocations().
| const char * relocationEntry::relType2Str | ( | unsigned long | r, | |
| unsigned | addressWidth = sizeof(Address) | |||
| ) | [static] |
Definition at line 37 of file relocationEntry-elf-ppc32.C.
References CASE_RETURN_STR.
Referenced by Dyninst::SymtabAPI::emitElfStatic::archSpecificRelocation().
| 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().
| Serializable * relocationEntry::serialize_impl | ( | SerializerBase * | sb, | |
| const char * | tag = "relocationEntry" | |||
| ) |
| 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.
| SYMTAB_EXPORT void relocationEntry::setAddend | ( | const Offset | value | ) |
Definition at line 3371 of file Symtab.C.
References addend_.
Referenced by Dyninst::SymtabAPI::Object::get_relocation_entries(), Dyninst::SymtabAPI::Object::get_relocationDyn_entries(), and Dyninst::SymtabAPI::emitElfUtils::updateRelocation().
| SYMTAB_EXPORT void relocationEntry::setName | ( | const std::string & | newName | ) |
| SYMTAB_EXPORT void relocationEntry::setRegionType | ( | const Region::RegionType | value | ) |
Definition at line 3376 of file Symtab.C.
References rtype_.
Referenced by Dyninst::SymtabAPI::Symtab::addExternalSymbolReference(), Dyninst::SymtabAPI::Object::get_relocation_entries(), and Dyninst::SymtabAPI::Object::get_relocationDyn_entries().
| SYMTAB_EXPORT void relocationEntry::setRelAddr | ( | const Offset | value | ) |
| SYMTAB_EXPORT void Dyninst::SymtabAPI::relocationEntry::setRelType | ( | unsigned long | relType | ) | [inline] |
| SYMTAB_EXPORT void relocationEntry::setTargetAddr | ( | const Offset | off | ) |
Definition at line 3325 of file Symtab.C.
References target_addr_.
| SYMTAB_EXPORT Offset relocationEntry::target_addr | ( | ) | const |
Definition at line 3320 of file Symtab.C.
References target_addr_.
| SYMTAB_EXPORT std::ostream& operator<< | ( | std::ostream & | os, | |
| const relocationEntry & | q | |||
| ) | [friend] |
Definition at line 705 of file Symtab.h.
Referenced by addend(), operator==(), and setAddend().
Definition at line 708 of file Symtab.h.
Referenced by addDynSym(), getDynSym(), and operator==().
std::string Dyninst::SymtabAPI::relocationEntry::name_ [private] |
Definition at line 707 of file Symtab.h.
Referenced by name(), operator==(), and setName().
Definition at line 704 of file Symtab.h.
Referenced by operator==(), rel_addr(), and setRelAddr().
| enum { ... } Dyninst::SymtabAPI::relocationEntry::relocationType |
unsigned long Dyninst::SymtabAPI::relocationEntry::relType_ [private] |
Definition at line 709 of file Symtab.h.
Referenced by getRelType(), operator==(), and setRelType().
Definition at line 706 of file Symtab.h.
Referenced by operator==(), regionType(), and setRegionType().
Definition at line 703 of file Symtab.h.
Referenced by operator==(), setTargetAddr(), and target_addr().
1.6.1