#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 | localVar () |
| localVar (std::string name, Type *typ, std::string fileName, int lineNum, Function *f, std::vector< VariableLocation > *locs=NULL) | |
| localVar (localVar &lvar) | |
| bool | addLocation (VariableLocation &location) |
| SYMTAB_EXPORT | ~localVar () |
| SYMTAB_EXPORT void | fixupUnknown (Module *) |
| SYMTAB_EXPORT std::string & | getName () |
| SYMTAB_EXPORT Type * | getType () |
| SYMTAB_EXPORT bool | setType (Type *newType) |
| SYMTAB_EXPORT int | getLineNum () |
| SYMTAB_EXPORT std::string & | getFileName () |
| SYMTAB_EXPORT std::vector < VariableLocation > & | getLocationLists () |
| SYMTAB_EXPORT bool | operator== (const localVar &l) |
| SYMTAB_EXPORT Serializable * | serialize_impl (SerializerBase *, const char *="localVar") THROW_SPEC(SerializerError) |
| 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 () |
Private Member Functions | |
| void | expandLocation (const VariableLocation &var, std::vector< VariableLocation > &ret) |
Private Attributes | |
| std::string | name_ |
| Type * | type_ |
| std::string | fileName_ |
| int | lineNum_ |
| Function * | func_ |
| std::vector< VariableLocation > | locs_ |
| bool | locsExpanded_ |
Friends | |
| class | typeCommon |
| class | localVarCollection |
Definition at line 78 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.
| SYMTAB_EXPORT Dyninst::SymtabAPI::localVar::localVar | ( | ) | [inline] |
Definition at line 100 of file Variable.h.
| localVar::localVar | ( | std::string | name, | |
| Type * | typ, | |||
| std::string | fileName, | |||
| int | lineNum, | |||
| Function * | f, | |||
| std::vector< VariableLocation > * | locs = NULL | |||
| ) |
Definition at line 207 of file Variable.C.
References Dyninst::SymtabAPI::Type::incrRefCount(), locs_, and type_.
| localVar::localVar | ( | localVar & | lvar | ) |
Definition at line 225 of file Variable.C.
References fileName_, func_, Dyninst::SymtabAPI::Type::incrRefCount(), lineNum_, locs_, locsExpanded_, name_, and type_.
| localVar::~localVar | ( | ) |
Definition at line 348 of file Variable.C.
References Dyninst::SymtabAPI::Type::decrRefCount(), and type_.
| 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().
| bool localVar::addLocation | ( | VariableLocation & | location | ) |
Definition at line 244 of file Variable.C.
References expandLocation(), locs_, and locsExpanded_.
Referenced by Dyninst::SymtabAPI::typeCommon::endCommonBlock(), Dyninst::SymtabAPI::DwarfWalker::parseFormalParam(), Dyninst::SymtabAPI::parseStabString(), and Dyninst::SymtabAPI::DwarfWalker::parseVariable().
| void Dyninst::AnnotatableSparse::annotationsReport | ( | ) | [inline, inherited] |
Definition at line 932 of file Annotatable.h.
References FILE__, Dyninst::AnnotationClassBase::findAnnotationClass(), fprintf, and getTypeName().
| void localVar::expandLocation | ( | const VariableLocation & | var, | |
| std::vector< VariableLocation > & | ret | |||
| ) | [private] |
Definition at line 255 of file Variable.C.
References Dyninst::VariableLocation::frameOffset, func_, Dyninst::SymtabAPI::Function::getFramePtr(), Dyninst::VariableLocation::hiPC, Dyninst::VariableLocation::lowPC, Dyninst::VariableLocation::mr_reg, Dyninst::MachRegister::name(), name_, Dyninst::VariableLocation::refClass, Dyninst::VariableLocation::stClass, Dyninst::storageClass2Str(), and Dyninst::storageRefClass2Str().
Referenced by addLocation(), and getLocationLists().
| void localVar::fixupUnknown | ( | Module * | module | ) |
Definition at line 354 of file Variable.C.
References Dyninst::SymtabAPI::dataUnknownType, Dyninst::SymtabAPI::Type::decrRefCount(), Dyninst::SymtabAPI::typeCollection::findType(), Dyninst::SymtabAPI::Type::getDataClass(), Dyninst::SymtabAPI::Type::getID(), Dyninst::SymtabAPI::typeCollection::getModTypeCollection(), Dyninst::SymtabAPI::Type::incrRefCount(), and type_.
| 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().
| std::string & localVar::getFileName | ( | ) |
Definition at line 394 of file Variable.C.
References fileName_.
| int localVar::getLineNum | ( | ) |
Definition at line 389 of file Variable.C.
References lineNum_.
| std::vector< Dyninst::VariableLocation > & localVar::getLocationLists | ( | ) |
Definition at line 399 of file Variable.C.
References expandLocation(), locs_, and locsExpanded_.
| std::string & localVar::getName | ( | ) |
Definition at line 373 of file Variable.C.
References name_.
Referenced by Dyninst::SymtabAPI::DwarfWalker::parseVariable().
| Type * localVar::getType | ( | ) |
Definition at line 378 of file Variable.C.
References 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 localVar::operator== | ( | const localVar & | l | ) |
Definition at line 415 of file Variable.C.
References fileName_, Dyninst::SymtabAPI::Type::getID(), lineNum_, locs_, name_, and type_.
| 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 * localVar::serialize_impl | ( | SerializerBase * | , | |
| const char * | = "localVar" | |||
| ) |
Definition at line 499 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.
| bool localVar::setType | ( | Type * | newType | ) |
Definition at line 383 of file Variable.C.
References type_.
friend class localVarCollection [friend] |
Definition at line 81 of file Variable.h.
friend class typeCommon [friend] |
Definition at line 80 of file Variable.h.
std::string Dyninst::SymtabAPI::localVar::fileName_ [private] |
Definition at line 85 of file Variable.h.
Referenced by getFileName(), localVar(), and operator==().
Function* Dyninst::SymtabAPI::localVar::func_ [private] |
Definition at line 87 of file Variable.h.
Referenced by expandLocation(), and localVar().
int Dyninst::SymtabAPI::localVar::lineNum_ [private] |
Definition at line 86 of file Variable.h.
Referenced by getLineNum(), localVar(), and operator==().
std::vector<VariableLocation> Dyninst::SymtabAPI::localVar::locs_ [private] |
Definition at line 88 of file Variable.h.
Referenced by addLocation(), getLocationLists(), localVar(), and operator==().
bool Dyninst::SymtabAPI::localVar::locsExpanded_ [private] |
Definition at line 92 of file Variable.h.
Referenced by addLocation(), getLocationLists(), and localVar().
std::string Dyninst::SymtabAPI::localVar::name_ [private] |
Definition at line 83 of file Variable.h.
Referenced by expandLocation(), getName(), localVar(), and operator==().
Type* Dyninst::SymtabAPI::localVar::type_ [private] |
Definition at line 84 of file Variable.h.
Referenced by fixupUnknown(), getType(), localVar(), operator==(), setType(), and ~localVar().
1.6.1