#include <Variable.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 | Variable () |
| SYMTAB_EXPORT bool | removeSymbol (Symbol *sym) |
| SYMTAB_EXPORT void | setType (Type *type) |
| SYMTAB_EXPORT Type * | getType () |
| SYMTAB_EXPORT Serializable * | serialize_impl (SerializerBase *sb, const char *tag="Variable") THROW_SPEC(SerializerError) |
| SYMTAB_EXPORT bool | operator== (const Variable &v) |
| SYMTAB_EXPORT Offset | getOffset () const |
| SYMTAB_EXPORT unsigned | getSize () const |
| SYMTAB_EXPORT Module * | getModule () const |
| SYMTAB_EXPORT Region * | getRegion () const |
| SYMTAB_EXPORT bool | addSymbol (Symbol *sym) |
| SYMTAB_EXPORT bool | getSymbols (std::vector< Symbol * > &syms) const |
| SYMTAB_EXPORT Symbol * | getFirstSymbol () const |
| SYMTAB_EXPORT const std::vector< std::string > & | getAllMangledNames () |
| SYMTAB_EXPORT const std::vector< std::string > & | getAllPrettyNames () |
| SYMTAB_EXPORT const std::vector< std::string > & | getAllTypedNames () |
| virtual SYMTAB_EXPORT bool | addMangledName (std::string name, bool isPrimary) |
| virtual SYMTAB_EXPORT bool | addPrettyName (std::string name, bool isPrimary) |
| virtual SYMTAB_EXPORT bool | addTypedName (std::string name, bool isPrimary) |
| SYMTAB_EXPORT bool | setModule (Module *mod) |
| SYMTAB_EXPORT bool | setSize (unsigned size) |
| SYMTAB_EXPORT bool | setOffset (unsigned offset) |
| 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 () |
Protected Member Functions | |
| bool | addMangledNameInt (std::string name, bool isPrimary) |
| bool | addPrettyNameInt (std::string name, bool isPrimary) |
| bool | addTypedNameInt (std::string name, bool isPrimary) |
| SYMTAB_EXPORT bool | removeSymbolInt (Symbol *sym) |
| virtual SYMTAB_EXPORT bool | changeSymbolOffset (Symbol *sym) |
| void | restore_type_by_id (SerializerBase *, Type *&, unsigned) THROW_SPEC(SerializerError) |
| void | restore_module_by_name (SerializerBase *, std::string &) THROW_SPEC(SerializerError) |
| void | rebuild_symbol_vector (SerializerBase *, std::vector< Address > &) THROW_SPEC(SerializerError) |
| SYMTAB_EXPORT void | serialize_aggregate (SerializerBase *, const char *="Aggregate") THROW_SPEC(SerializerError) |
Protected Attributes | |
| Module * | module_ |
| std::vector< Symbol * > | symbols_ |
| Symbol * | firstSymbol |
| Offset | offset_ |
| std::vector< std::string > | mangledNames_ |
| std::vector< std::string > | prettyNames_ |
| std::vector< std::string > | typedNames_ |
Private Member Functions | |
| SYMTAB_EXPORT | Variable (Symbol *sym) |
Static Private Member Functions | |
| static SYMTAB_EXPORT Variable * | createVariable (Symbol *sym) |
Private Attributes | |
| Type * | type_ |
Friends | |
| class | Symtab |
| std::ostream & | operator<< (std::ostream &os, const Dyninst::SymtabAPI::Variable &) |
Definition at line 53 of file Variable.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.
| Variable::Variable | ( | Symbol * | sym | ) | [private] |
Definition at line 54 of file Variable.C.
| Variable::Variable | ( | ) |
Definition at line 60 of file Variable.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().
| virtual SYMTAB_EXPORT bool Dyninst::SymtabAPI::Aggregate::addMangledName | ( | std::string | name, | |
| bool | isPrimary | |||
| ) | [virtual, inherited] |
| bool Dyninst::SymtabAPI::Aggregate::addMangledNameInt | ( | std::string | name, | |
| bool | isPrimary | |||
| ) | [protected, inherited] |
| virtual SYMTAB_EXPORT bool Dyninst::SymtabAPI::Aggregate::addPrettyName | ( | std::string | name, | |
| bool | isPrimary | |||
| ) | [virtual, inherited] |
| bool Dyninst::SymtabAPI::Aggregate::addPrettyNameInt | ( | std::string | name, | |
| bool | isPrimary | |||
| ) | [protected, inherited] |
| bool Aggregate::addSymbol | ( | Symbol * | sym | ) | [inherited] |
Definition at line 117 of file Aggregate.C.
References Dyninst::SymtabAPI::Module::fileName(), Dyninst::SymtabAPI::Aggregate::firstSymbol, Dyninst::SymtabAPI::Symbol::getMangledName(), Dyninst::SymtabAPI::Symbol::getModule(), Dyninst::SymtabAPI::Symbol::getOffset(), Dyninst::SymtabAPI::Symbol::getPrettyName(), Dyninst::SymtabAPI::Symbol::getTypedName(), Dyninst::SymtabAPI::Aggregate::mangledNames_, Dyninst::SymtabAPI::Aggregate::module_, Dyninst::SymtabAPI::Aggregate::offset_, Dyninst::SymtabAPI::Aggregate::prettyNames_, Dyninst::SymtabAPI::Aggregate::symbols_, and Dyninst::SymtabAPI::Aggregate::typedNames_.
Referenced by Dyninst::SymtabAPI::Symtab::addSymbolToAggregates().
| virtual SYMTAB_EXPORT bool Dyninst::SymtabAPI::Aggregate::addTypedName | ( | std::string | name, | |
| bool | isPrimary | |||
| ) | [virtual, inherited] |
| bool Dyninst::SymtabAPI::Aggregate::addTypedNameInt | ( | std::string | name, | |
| bool | isPrimary | |||
| ) | [protected, inherited] |
| void Dyninst::AnnotatableSparse::annotationsReport | ( | ) | [inline, inherited] |
Definition at line 932 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, and getTypeName().
| bool Aggregate::changeSymbolOffset | ( | Symbol * | sym | ) | [protected, virtual, inherited] |
Definition at line 282 of file Aggregate.C.
References Dyninst::SymtabAPI::Symtab::addSymbolToAggregates(), Dyninst::SymtabAPI::Symtab::changeAggregateOffset(), Dyninst::SymtabAPI::Module::exec(), Dyninst::SymtabAPI::Aggregate::firstSymbol, Dyninst::SymtabAPI::Symbol::getOffset(), Dyninst::SymtabAPI::Aggregate::getOffset(), Dyninst::SymtabAPI::Aggregate::module_, Dyninst::SymtabAPI::Aggregate::offset_, Dyninst::SymtabAPI::Aggregate::removeSymbolInt(), and Dyninst::SymtabAPI::Aggregate::symbols_.
Referenced by Dyninst::SymtabAPI::Symtab::changeSymbolOffset().
| static SYMTAB_EXPORT Variable* Dyninst::SymtabAPI::Variable::createVariable | ( | Symbol * | sym | ) | [static, private] |
| const vector< std::string > & Aggregate::getAllMangledNames | ( | ) | [inherited] |
Definition at line 102 of file Aggregate.C.
References Dyninst::SymtabAPI::Aggregate::mangledNames_.
Referenced by Dyninst::SymtabAPI::DwarfWalker::parse_int(), and Dyninst::SymtabAPI::DwarfWalker::parseFormalParam().
| const vector< std::string > & Aggregate::getAllPrettyNames | ( | ) | [inherited] |
Definition at line 107 of file Aggregate.C.
References Dyninst::SymtabAPI::Aggregate::prettyNames_.
Referenced by enumLocalSymbols().
| const vector< std::string > & Aggregate::getAllTypedNames | ( | ) | [inherited] |
Definition at line 112 of file Aggregate.C.
References Dyninst::SymtabAPI::Aggregate::typedNames_.
| 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().
| Symbol * Aggregate::getFirstSymbol | ( | ) | const [inherited] |
Definition at line 195 of file Aggregate.C.
References Dyninst::SymtabAPI::Aggregate::firstSymbol.
Referenced by Dyninst::SymtabAPI::SymtabReader::getContainingSymbol(), and Dyninst::SymtabAPI::Function::getSize().
| SYMTAB_EXPORT Module* Dyninst::SymtabAPI::Aggregate::getModule | ( | ) | const [inline, inherited] |
Definition at line 73 of file Aggregate.h.
References Dyninst::SymtabAPI::Aggregate::module_.
Referenced by add_type_info(), enumLocalSymbols(), and findLocalVars().
| Offset Aggregate::getOffset | ( | ) | const [inherited] |
Definition at line 72 of file Aggregate.C.
References FILE__, Dyninst::SymtabAPI::Aggregate::firstSymbol, fprintf, and Dyninst::SymtabAPI::Aggregate::offset_.
Referenced by Dyninst::SymtabAPI::Aggregate::changeSymbolOffset(), Dyninst::SymtabAPI::Symtab::deleteFunction(), Dyninst::SymtabAPI::Symtab::deleteVariable(), enumLocalVars(), Dyninst::SymtabAPI::Function::expandLocation(), Dyninst::SymtabAPI::Function::getSize(), Dyninst::SymtabAPI::Symtab::getTOCoffset(), Dyninst::SymtabAPI::Object::parseStabFileLineInfo(), and Dyninst::SymtabAPI::Symtab::rebuild_funcvar_hashes().
| Region * Aggregate::getRegion | ( | ) | const [inherited] |
Definition at line 92 of file Aggregate.C.
References FILE__, Dyninst::SymtabAPI::Aggregate::firstSymbol, fprintf, and Dyninst::SymtabAPI::Symbol::getRegion().
Referenced by Dyninst::SymtabAPI::Symtab::addSymbolToAggregates().
| unsigned Aggregate::getSize | ( | ) | const [inherited] |
Definition at line 82 of file Aggregate.C.
References FILE__, Dyninst::SymtabAPI::Aggregate::firstSymbol, fprintf, and Dyninst::SymtabAPI::Symbol::getSize().
| bool Aggregate::getSymbols | ( | std::vector< Symbol * > & | syms | ) | const [inherited] |
Definition at line 189 of file Aggregate.C.
References Dyninst::SymtabAPI::Aggregate::symbols_.
Referenced by Dyninst::SymtabAPI::Symtab::deleteAggregate().
| Type * Variable::getType | ( | ) |
Definition at line 71 of file Variable.C.
References Dyninst::SymtabAPI::Module::exec(), Dyninst::SymtabAPI::Aggregate::module_, Dyninst::SymtabAPI::Symtab::parseTypesNow(), and type_.
| 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 Variable::operator== | ( | const Variable & | v | ) |
Reimplemented from Dyninst::SymtabAPI::Aggregate.
Definition at line 184 of file Variable.C.
References Dyninst::SymtabAPI::Type::getID(), and type_.
| void Aggregate::rebuild_symbol_vector | ( | SerializerBase * | , | |
| std::vector< Address > & | ||||
| ) | [protected, inherited] |
Definition at line 504 of file Aggregate.C.
| 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().
| bool Variable::removeSymbol | ( | Symbol * | sym | ) | [virtual] |
Implements Dyninst::SymtabAPI::Aggregate.
Definition at line 198 of file Variable.C.
References Dyninst::SymtabAPI::Symtab::deleteVariable(), Dyninst::SymtabAPI::Module::exec(), Dyninst::SymtabAPI::Aggregate::module_, Dyninst::SymtabAPI::Aggregate::removeSymbolInt(), and Dyninst::SymtabAPI::Aggregate::symbols_.
Referenced by Dyninst::SymtabAPI::Symtab::changeType().
| bool Aggregate::removeSymbolInt | ( | Symbol * | sym | ) | [protected, inherited] |
Definition at line 171 of file Aggregate.C.
References Dyninst::SymtabAPI::Aggregate::firstSymbol, Dyninst::SymtabAPI::Symbol::getOffset(), Dyninst::SymtabAPI::Aggregate::offset_, and Dyninst::SymtabAPI::Aggregate::symbols_.
Referenced by Dyninst::SymtabAPI::Aggregate::changeSymbolOffset(), removeSymbol(), and Dyninst::SymtabAPI::Function::removeSymbol().
| void Aggregate::restore_module_by_name | ( | SerializerBase * | , | |
| std::string & | ||||
| ) | [protected, inherited] |
Definition at line 425 of file Aggregate.C.
| void Aggregate::restore_type_by_id | ( | SerializerBase * | , | |
| Type *& | , | |||
| unsigned | ||||
| ) | [protected, inherited] |
Definition at line 378 of file Aggregate.C.
| void Aggregate::serialize_aggregate | ( | SerializerBase * | , | |
| const char * | = "Aggregate" | |||
| ) | [protected, inherited] |
Definition at line 593 of file Aggregate.C.
| Serializable * Variable::serialize_impl | ( | SerializerBase * | sb, | |
| const char * | tag = "Variable" | |||
| ) |
Definition at line 162 of file Variable.C.
| 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 bool Dyninst::SymtabAPI::Aggregate::setModule | ( | Module * | mod | ) | [inherited] |
| SYMTAB_EXPORT bool Dyninst::SymtabAPI::Aggregate::setOffset | ( | unsigned | offset | ) | [inherited] |
| SYMTAB_EXPORT bool Dyninst::SymtabAPI::Aggregate::setSize | ( | unsigned | size | ) | [inherited] |
| void Variable::setType | ( | Type * | type | ) |
Definition at line 65 of file Variable.C.
References type_.
Referenced by add_type_info(), and Dyninst::SymtabAPI::DwarfWalker::parseVariable().
| std::ostream& operator<< | ( | std::ostream & | os, | |
| const Dyninst::SymtabAPI::Variable & | ||||
| ) | [friend] |
Reimplemented from Dyninst::SymtabAPI::Aggregate.
friend class Symtab [friend] |
Reimplemented from Dyninst::SymtabAPI::Aggregate.
Definition at line 54 of file Variable.h.
Symbol* Dyninst::SymtabAPI::Aggregate::firstSymbol [protected, inherited] |
Definition at line 114 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::changeSymbolOffset(), Dyninst::SymtabAPI::Aggregate::getFirstSymbol(), Dyninst::SymtabAPI::Aggregate::getOffset(), Dyninst::SymtabAPI::Aggregate::getRegion(), Dyninst::SymtabAPI::Aggregate::getSize(), and Dyninst::SymtabAPI::Aggregate::removeSymbolInt().
std::vector<std::string> Dyninst::SymtabAPI::Aggregate::mangledNames_ [protected, inherited] |
Definition at line 117 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::getAllMangledNames(), operator<<(), and Dyninst::SymtabAPI::Aggregate::operator==().
Module* Dyninst::SymtabAPI::Aggregate::module_ [protected, inherited] |
Definition at line 111 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::changeSymbolOffset(), Dyninst::SymtabAPI::Function::expandLocation(), Dyninst::SymtabAPI::Function::findLocalVariable(), Dyninst::SymtabAPI::Function::getLocalVariables(), Dyninst::SymtabAPI::Aggregate::getModule(), Dyninst::SymtabAPI::Function::getParams(), getType(), operator<<(), Dyninst::SymtabAPI::Aggregate::operator==(), removeSymbol(), and Dyninst::SymtabAPI::Function::removeSymbol().
Offset Dyninst::SymtabAPI::Aggregate::offset_ [protected, inherited] |
Definition at line 115 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::changeSymbolOffset(), Dyninst::SymtabAPI::Aggregate::getOffset(), Dyninst::SymtabAPI::SymbolCompareByAddr::operator()(), and Dyninst::SymtabAPI::Aggregate::removeSymbolInt().
std::vector<std::string> Dyninst::SymtabAPI::Aggregate::prettyNames_ [protected, inherited] |
Definition at line 118 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::getAllPrettyNames(), operator<<(), and Dyninst::SymtabAPI::Aggregate::operator==().
std::vector<Symbol *> Dyninst::SymtabAPI::Aggregate::symbols_ [protected, inherited] |
Definition at line 113 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::changeSymbolOffset(), Dyninst::SymtabAPI::Function::getPtrOffset(), Dyninst::SymtabAPI::Function::getSize(), Dyninst::SymtabAPI::Aggregate::getSymbols(), Dyninst::SymtabAPI::Function::getTOCOffset(), Dyninst::SymtabAPI::Aggregate::operator==(), removeSymbol(), Dyninst::SymtabAPI::Function::removeSymbol(), and Dyninst::SymtabAPI::Aggregate::removeSymbolInt().
Type* Dyninst::SymtabAPI::Variable::type_ [private] |
Definition at line 75 of file Variable.h.
Referenced by getType(), operator==(), and setType().
std::vector<std::string> Dyninst::SymtabAPI::Aggregate::typedNames_ [protected, inherited] |
Definition at line 119 of file Aggregate.h.
Referenced by Dyninst::SymtabAPI::Aggregate::addSymbol(), Dyninst::SymtabAPI::Aggregate::Aggregate(), Dyninst::SymtabAPI::Aggregate::getAllTypedNames(), operator<<(), and Dyninst::SymtabAPI::Aggregate::operator==().
1.6.1