#include <dwarfWalker.h>
Data Structures | |
| struct | Contexts |
Public Types | |
| enum | Error { NoError } |
Public Member Functions | |
| DwarfWalker (Symtab *symtab, Dwarf_Debug &dbg) | |
| ~DwarfWalker () | |
| bool | parse () |
Private Types | |
| typedef std::vector< std::pair < Address, Address > > | range_set_t |
| typedef boost::shared_ptr < std::vector< std::pair < Address, Address > > > | range_set_ptr |
Private Member Functions | |
| bool | setup (Dwarf_Die dieEntry, Dwarf_Off modOffset, Address lowpc) |
| bool | parseModule (Module *&fixUnknownMod) |
| bool | parse_int (Dwarf_Die entry, bool parseSiblings) |
| bool | parseSubprogram () |
| bool | parseLexicalBlock () |
| bool | parseCommonBlock () |
| bool | parseConstant () |
| bool | parseVariable () |
| bool | parseFormalParam () |
| bool | parseBaseType () |
| bool | parseTypedef () |
| bool | parseArray () |
| bool | parseSubrange () |
| bool | parseEnum () |
| bool | parseInheritance () |
| bool | parseStructUnionClass () |
| bool | parseEnumEntry () |
| bool | parseMember () |
| bool | parseConstPackedVolatile () |
| bool | parseTypeReferences () |
| Function * | curFunc () |
| typeCommon * | curCommon () |
| typeEnum * | curEnum () |
| fieldListType * | curEnclosure () |
| void | setFunc (Function *f) |
| void | setCommon (typeCommon *c) |
| void | setEnum (typeEnum *e) |
| void | setEnclosure (fieldListType *f) |
| std::string & | curName () |
| bool | nameDefined () |
| Object * | obj () |
| Symtab * | symtab () |
| Module * | mod () |
| std::vector< std::string > & | srcFiles () |
| typeCollection * | tc () |
| Dwarf_Debug & | dbg () |
| bool | parseSibling () |
| bool | parseChild () |
| void | setParseSibling (bool p) |
| void | setParseChild (bool p) |
| Dwarf_Half | tag () |
| Dwarf_Off | offset () |
| Dwarf_Die | entry () |
| Dwarf_Die | specEntry () |
| Dwarf_Die | abstractEntry () |
| void | clearRanges () |
| bool | hasRanges () |
| range_set_t::iterator | ranges_begin () |
| range_set_t::iterator | ranges_end () |
| unsigned long | id () |
| void | setEntry (Dwarf_Die entry) |
| void | setSpecEntry (Dwarf_Die se) |
| void | setAbstractEntry (Dwarf_Die se) |
| void | setTag (Dwarf_Half tag) |
| void | setOffset (Dwarf_Off offset) |
| void | setRange (std::pair< Address, Address > range) |
| bool | buildSrcFiles (Dwarf_Die entry) |
| bool | hasDeclaration (bool &decl) |
| bool | findTag () |
| bool | findOffset () |
| bool | handleAbstractOrigin (bool &isAbstractOrigin) |
| bool | handleSpecification (bool &hasSpec) |
| bool | findFuncName () |
| bool | findFunction (bool &found) |
| bool | findBaseAddr () |
| bool | getFrameBase () |
| bool | getReturnType (bool hasSpecification, Type *&returnType) |
| bool | addFuncToContainer (Type *returnType) |
| bool | findType (Type *&, bool defaultToVoid) |
| bool | getLineInformation (Dwarf_Unsigned &variableLineNo, bool &hasLineNumber, std::string &filename) |
| bool | findName (std::string &) |
| void | removeFortranUnderscore (std::string &) |
| bool | findSize (unsigned &size) |
| bool | findVisibility (visibility_t &visibility) |
| bool | findValue (long &value, bool &valid) |
| bool | fixName (std::string &name, Type *type) |
| bool | fixBitFields (std::vector< VariableLocation > &locs, long &size) |
| bool | findEntryToUse (Dwarf_Half attr, bool &found, Dwarf_Die &entry) |
| bool | parseSubrangeAUX (Dwarf_Die entry, std::string &lobound, std::string &hibound) |
| bool | decodeLocationList (Dwarf_Half attr, Address *initialVal, std::vector< VariableLocation > &locs) |
| bool | checkForConstantOrExpr (Dwarf_Half attr, Dwarf_Attribute &locationAttribute, bool &constant, bool &expr, Dwarf_Half &form) |
| bool | findConstant (Dwarf_Half attr, Address &value) |
| bool | findConstantWithForm (Dwarf_Attribute &attr, Dwarf_Half form, Address &value) |
| bool | decodeConstantLocation (Dwarf_Attribute &attr, Dwarf_Half form, std::vector< VariableLocation > &locs) |
| bool | constructConstantVariableLocation (Address value, std::vector< VariableLocation > &locs) |
| typeArray * | parseMultiDimensionalArray (Dwarf_Die firstRange, Type *elementType) |
| bool | decipherBound (Dwarf_Attribute boundAttribute, std::string &name) |
| bool | decodeExpression (Dwarf_Attribute &attr, std::vector< VariableLocation > &locs) |
| bool | decodeLocationListForStaticOffsetOrAddress (Dwarf_Locdesc **locationList, Dwarf_Signed listLength, std::vector< VariableLocation > &locs, Address *initialStackValue=NULL) |
| void | deallocateLocationList (Dwarf_Locdesc *locationList, Dwarf_Signed listLength) |
| void | deallocateLocationList (Dwarf_Locdesc **locationList, Dwarf_Signed listLength) |
| void | clearFunc () |
Private Attributes | |
| std::map< Dwarf_Off, fieldListType * > | enclosureMap |
| std::set< Function * > | parsedFuncs |
| Contexts | contexts_ |
| Dwarf_Debug & | dbg_ |
| Module * | mod_ |
| Symtab * | symtab_ |
| std::vector< std::string > | srcFiles_ |
| typeCollection * | tc_ |
| std::string | name_ |
| Address | modLow |
| Address | modHigh |
| Dwarf_Unsigned | cu_header_length |
| Dwarf_Half | version |
| Dwarf_Unsigned | abbrev_offset |
| Dwarf_Half | addr_size |
| Dwarf_Half | offset_size |
| Dwarf_Half | extension_size |
| Dwarf_Sig8 | signature |
| Dwarf_Unsigned | typeoffset |
| Dwarf_Unsigned | next_cu_header |
| Dwarf_Off | compile_offset |
Definition at line 31 of file dwarfWalker.h.
typedef boost::shared_ptr<std::vector<std::pair<Address, Address> > > Dyninst::SymtabAPI::DwarfWalker::range_set_ptr [private] |
Definition at line 33 of file dwarfWalker.h.
typedef std::vector<std::pair<Address, Address> > Dyninst::SymtabAPI::DwarfWalker::range_set_t [private] |
Definition at line 32 of file dwarfWalker.h.
Definition at line 98 of file dwarfWalker.h.
| DwarfWalker::DwarfWalker | ( | Symtab * | symtab, | |
| Dwarf_Debug & | dbg | |||
| ) |
Definition at line 42 of file dwarfWalker.C.
| DwarfWalker::~DwarfWalker | ( | ) |
Definition at line 52 of file dwarfWalker.C.
| Dwarf_Die Dyninst::SymtabAPI::DwarfWalker::abstractEntry | ( | ) | [inline, private] |
Definition at line 175 of file dwarfWalker.h.
References Dyninst::SymtabAPI::DwarfWalker::Contexts::abstractEntry(), and contexts_.
Referenced by findEntryToUse(), parseFormalParam(), and parseSubprogram().
| bool DwarfWalker::addFuncToContainer | ( | Type * | returnType | ) | [private] |
Definition at line 1275 of file dwarfWalker.C.
References Dyninst::SymtabAPI::fieldListType::addField(), curEnclosure(), curName(), dwarf_printf, offset(), P_cplus_demangle(), and symtab().
Referenced by parseSubprogram().
| bool DwarfWalker::buildSrcFiles | ( | Dwarf_Die | entry | ) | [private] |
Definition at line 190 of file dwarfWalker.C.
References dbg(), DWARF_ERROR_RET, and srcFiles_.
Referenced by parseModule().
| bool DwarfWalker::checkForConstantOrExpr | ( | Dwarf_Half | attr, | |
| Dwarf_Attribute & | locationAttribute, | |||
| bool & | constant, | |||
| bool & | expr, | |||
| Dwarf_Half & | form | |||
| ) | [private] |
Definition at line 1427 of file dwarfWalker.C.
References DWARF_FAIL_RET, dwarf_printf, offset_size, and version.
Referenced by decodeLocationList().
| void Dyninst::SymtabAPI::DwarfWalker::clearFunc | ( | ) | [inline, private] |
Definition at line 252 of file dwarfWalker.h.
References Dyninst::SymtabAPI::DwarfWalker::Contexts::clearFunc(), and contexts_.
Referenced by parse_int().
| void Dyninst::SymtabAPI::DwarfWalker::clearRanges | ( | ) | [inline, private] |
Definition at line 176 of file dwarfWalker.h.
References Dyninst::SymtabAPI::DwarfWalker::Contexts::clearRanges(), and contexts_.
Referenced by parseLexicalBlock().
| bool DwarfWalker::constructConstantVariableLocation | ( | Address | value, | |
| std::vector< VariableLocation > & | locs | |||
| ) | [private] |
Definition at line 1507 of file dwarfWalker.C.
References Dyninst::VariableLocation::frameOffset, hasRanges(), Dyninst::VariableLocation::hiPC, Dyninst::VariableLocation::lowPC, ranges_begin(), ranges_end(), Dyninst::VariableLocation::refClass, Dyninst::VariableLocation::stClass, Dyninst::storageAddr, and Dyninst::storageNoRef.
Referenced by decodeConstantLocation().
| typeCommon* Dyninst::SymtabAPI::DwarfWalker::curCommon | ( | ) | [inline, private] |
Definition at line 142 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::curCommon().
| fieldListType* Dyninst::SymtabAPI::DwarfWalker::curEnclosure | ( | ) | [inline, private] |
Definition at line 144 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::curEnclosure().
Referenced by addFuncToContainer(), parse_int(), parseInheritance(), parseMember(), parseSubprogram(), parseVariable(), and removeFortranUnderscore().
| typeEnum* Dyninst::SymtabAPI::DwarfWalker::curEnum | ( | ) | [inline, private] |
Definition at line 143 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::curEnum().
Referenced by parseEnumEntry().
| Function* Dyninst::SymtabAPI::DwarfWalker::curFunc | ( | ) | [inline, private] |
Definition at line 141 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::curFunc().
Referenced by findFunction(), getFrameBase(), parse_int(), parseFormalParam(), parseSubprogram(), parseVariable(), and removeFortranUnderscore().
| std::string& Dyninst::SymtabAPI::DwarfWalker::curName | ( | ) | [inline, private] |
Definition at line 152 of file dwarfWalker.h.
References name_.
Referenced by addFuncToContainer(), findFuncName(), findFunction(), parse_int(), parseArray(), parseBaseType(), parseConstPackedVolatile(), parseEnum(), parseEnumEntry(), parseFormalParam(), parseMember(), parseStructUnionClass(), parseSubprogram(), parseSubrangeAUX(), parseTypedef(), parseTypeReferences(), and parseVariable().
| Dwarf_Debug& Dyninst::SymtabAPI::DwarfWalker::dbg | ( | ) | [inline, private] |
Definition at line 160 of file dwarfWalker.h.
References dbg_.
Referenced by buildSrcFiles(), deallocateLocationList(), decipherBound(), decodeExpression(), decodeLocationList(), findFuncName(), findSize(), findType(), findValue(), findVisibility(), fixBitFields(), getLineInformation(), getReturnType(), handleAbstractOrigin(), handleSpecification(), parse(), parse_int(), parseArray(), parseLexicalBlock(), parseModule(), parseMultiDimensionalArray(), parseSubprogram(), and parseSubrangeAUX().
| void DwarfWalker::deallocateLocationList | ( | Dwarf_Locdesc ** | locationList, | |
| Dwarf_Signed | listLength | |||
| ) | [private] |
Definition at line 2029 of file dwarfWalker.C.
References dbg().
| void DwarfWalker::deallocateLocationList | ( | Dwarf_Locdesc * | locationList, | |
| Dwarf_Signed | listLength | |||
| ) | [private] |
Definition at line 2020 of file dwarfWalker.C.
References dbg().
Referenced by decodeLocationList().
| bool DwarfWalker::decipherBound | ( | Dwarf_Attribute | boundAttribute, | |
| std::string & | name | |||
| ) | [private] |
Definition at line 1792 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, and dwarf_printf.
Referenced by parseSubrangeAUX().
| bool DwarfWalker::decodeConstantLocation | ( | Dwarf_Attribute & | attr, | |
| Dwarf_Half | form, | |||
| std::vector< VariableLocation > & | locs | |||
| ) | [private] |
Definition at line 1499 of file dwarfWalker.C.
References constructConstantVariableLocation(), and findConstantWithForm().
Referenced by decodeLocationList().
| bool DwarfWalker::decodeExpression | ( | Dwarf_Attribute & | attr, | |
| std::vector< VariableLocation > & | locs | |||
| ) | [private] |
Definition at line 1894 of file dwarfWalker.C.
References addr_size, dbg(), decodeLocationListForStaticOffsetOrAddress(), DWARF_FAIL_RET, and dwarf_printf.
Referenced by decodeLocationList().
| bool DwarfWalker::decodeLocationList | ( | Dwarf_Half | attr, | |
| Address * | initialVal, | |||
| std::vector< VariableLocation > & | locs | |||
| ) | [private] |
Definition at line 1366 of file dwarfWalker.C.
References checkForConstantOrExpr(), dbg(), deallocateLocationList(), decodeConstantLocation(), decodeExpression(), decodeLocationListForStaticOffsetOrAddress(), DWARF_FAIL_RET, dwarf_printf, and entry().
Referenced by getFrameBase(), parseFormalParam(), parseMember(), and parseVariable().
| bool DwarfWalker::decodeLocationListForStaticOffsetOrAddress | ( | Dwarf_Locdesc ** | locationList, | |
| Dwarf_Signed | listLength, | |||
| std::vector< VariableLocation > & | locs, | |||
| Address * | initialStackValue = NULL | |||
| ) | [private] |
Definition at line 1920 of file dwarfWalker.C.
References Dyninst::Dwarf::decodeDwarfExpression(), dwarf_printf, hasRanges(), Dyninst::VariableLocation::hiPC, Dyninst::VariableLocation::lowPC, modHigh, modLow, ranges_begin(), ranges_end(), Dyninst::VariableLocation::refClass, Dyninst::VariableLocation::stClass, Dyninst::storageAddr, Dyninst::storageNoRef, and symtab().
Referenced by decodeExpression(), and decodeLocationList().
| Dwarf_Die Dyninst::SymtabAPI::DwarfWalker::entry | ( | ) | [inline, private] |
Definition at line 169 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::entry().
Referenced by decodeLocationList(), findConstant(), findEntryToUse(), findFunction(), findOffset(), findSize(), findTag(), findValue(), findVisibility(), fixBitFields(), getReturnType(), handleAbstractOrigin(), handleSpecification(), hasDeclaration(), parse_int(), parseArray(), parseCommonBlock(), parseLexicalBlock(), and parseSubrange().
| bool Dyninst::SymtabAPI::DwarfWalker::findBaseAddr | ( | ) | [private] |
| bool DwarfWalker::findConstant | ( | Dwarf_Half | attr, | |
| Address & | value | |||
| ) | [private] |
Definition at line 1449 of file dwarfWalker.C.
References DWARF_FAIL_RET, entry(), and findConstantWithForm().
Referenced by parseLexicalBlock(), and parseModule().
| bool DwarfWalker::findConstantWithForm | ( | Dwarf_Attribute & | attr, | |
| Dwarf_Half | form, | |||
| Address & | value | |||
| ) | [private] |
Definition at line 1466 of file dwarfWalker.C.
References DWARF_FAIL_RET, and dwarf_printf.
Referenced by decodeConstantLocation(), and findConstant().
| bool DwarfWalker::findEntryToUse | ( | Dwarf_Half | attr, | |
| bool & | found, | |||
| Dwarf_Die & | entry | |||
| ) | [private] |
Definition at line 1056 of file dwarfWalker.C.
References abstractEntry(), DWARF_FAIL_RET, entry(), and specEntry().
| bool DwarfWalker::findFuncName | ( | ) | [private] |
Definition at line 1166 of file dwarfWalker.C.
References curName(), dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, dwarf_printf, findName(), and specEntry().
Referenced by parseSubprogram().
| bool DwarfWalker::findFunction | ( | bool & | found | ) | [private] |
Definition at line 1189 of file dwarfWalker.C.
References curFunc(), curName(), DWARF_CHECK_RET, dwarf_printf, entry(), nameDefined(), obj(), setFunc(), and symtab().
Referenced by parseSubprogram().
| bool DwarfWalker::findName | ( | std::string & | name | ) | [private] |
Definition at line 1150 of file dwarfWalker.C.
References DWARF_CHECK_RET, dwarf_printf, and specEntry().
Referenced by findFuncName(), parseArray(), parseBaseType(), parseConstPackedVolatile(), parseEnum(), parseEnumEntry(), parseFormalParam(), parseMember(), parseStructUnionClass(), parseSubrangeAUX(), parseTypedef(), parseTypeReferences(), and parseVariable().
| bool DwarfWalker::findOffset | ( | ) | [private] |
Definition at line 1048 of file dwarfWalker.C.
References DWARF_FAIL_RET, entry(), and setOffset().
Referenced by parse_int().
| bool DwarfWalker::findSize | ( | unsigned & | size | ) | [private] |
Definition at line 1533 of file dwarfWalker.C.
References dbg(), DWARF_FAIL_RET, entry(), and specEntry().
Referenced by parseBaseType(), and parseStructUnionClass().
| bool DwarfWalker::findTag | ( | ) | [private] |
Definition at line 1040 of file dwarfWalker.C.
References DWARF_FAIL_RET, entry(), and setTag().
Referenced by parse_int().
| bool DwarfWalker::findType | ( | Type *& | type, | |
| bool | defaultToVoid | |||
| ) | [private] |
Definition at line 1303 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, dwarf_printf, Dyninst::SymtabAPI::typeCollection::findOrCreateType(), Dyninst::SymtabAPI::typeCollection::findType(), Dyninst::SymtabAPI::Type::getName(), specEntry(), and tc().
Referenced by parseArray(), parseConstPackedVolatile(), parseFormalParam(), parseInheritance(), parseMember(), parseTypedef(), parseTypeReferences(), and parseVariable().
| bool DwarfWalker::findValue | ( | long & | value, | |
| bool & | valid | |||
| ) | [private] |
Definition at line 1577 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, and entry().
Referenced by parseEnumEntry().
| bool DwarfWalker::findVisibility | ( | visibility_t & | visibility | ) | [private] |
Definition at line 1549 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, entry(), Dyninst::SymtabAPI::visPrivate, Dyninst::SymtabAPI::visProtected, and Dyninst::SymtabAPI::visPublic.
Referenced by parseInheritance().
| bool DwarfWalker::fixBitFields | ( | std::vector< VariableLocation > & | locs, | |
| long & | size | |||
| ) | [private] |
Definition at line 1598 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, and entry().
Referenced by parseMember().
| bool DwarfWalker::fixName | ( | std::string & | name, | |
| Type * | type | |||
| ) | [private] |
Definition at line 1633 of file dwarfWalker.C.
References Dyninst::SymtabAPI::Type::getName(), and tag().
Referenced by parseConstPackedVolatile(), and parseTypedef().
| bool DwarfWalker::getFrameBase | ( | ) | [private] |
Definition at line 1224 of file dwarfWalker.C.
References curFunc(), decodeLocationList(), DWARF_CHECK_RET, dwarf_printf, and Dyninst::SymtabAPI::Function::getFramePtrRefForInit().
Referenced by parseSubprogram().
| bool DwarfWalker::getLineInformation | ( | Dwarf_Unsigned & | variableLineNo, | |
| bool & | hasLineNumber, | |||
| std::string & | filename | |||
| ) | [private] |
Definition at line 1332 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, specEntry(), and srcFiles().
Referenced by parseFormalParam(), and parseVariable().
| bool DwarfWalker::getReturnType | ( | bool | hasSpecification, | |
| Type *& | returnType | |||
| ) | [private] |
Definition at line 1238 of file dwarfWalker.C.
References dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, dwarf_printf, entry(), Dyninst::SymtabAPI::typeCollection::findOrCreateType(), Dyninst::SymtabAPI::typeCollection::findType(), specEntry(), and tc().
Referenced by parseSubprogram().
| bool DwarfWalker::handleAbstractOrigin | ( | bool & | isAbstractOrigin | ) | [private] |
Definition at line 1088 of file dwarfWalker.C.
References dbg(), DWARF_FAIL_RET, dwarf_printf, entry(), and setAbstractEntry().
Referenced by parseFormalParam(), and parseSubprogram().
| bool DwarfWalker::handleSpecification | ( | bool & | hasSpec | ) | [private] |
Definition at line 1120 of file dwarfWalker.C.
References dbg(), DWARF_FAIL_RET, dwarf_printf, entry(), and setSpecEntry().
Referenced by parseSubprogram(), and parseVariable().
| bool DwarfWalker::hasDeclaration | ( | bool & | decl | ) | [private] |
Definition at line 1031 of file dwarfWalker.C.
References DWARF_FAIL_RET, and entry().
Referenced by parseStructUnionClass().
| bool Dyninst::SymtabAPI::DwarfWalker::hasRanges | ( | ) | [inline, private] |
Definition at line 177 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::ranges().
Referenced by constructConstantVariableLocation(), decodeLocationListForStaticOffsetOrAddress(), and parseLexicalBlock().
| unsigned long Dyninst::SymtabAPI::DwarfWalker::id | ( | ) | [inline, private] |
Definition at line 182 of file dwarfWalker.h.
References compile_offset, and offset().
| Module* Dyninst::SymtabAPI::DwarfWalker::mod | ( | ) | [inline, private] |
Definition at line 157 of file dwarfWalker.h.
References mod_.
Referenced by parseSubrangeAUX(), and removeFortranUnderscore().
| bool Dyninst::SymtabAPI::DwarfWalker::nameDefined | ( | ) | [inline, private] |
Definition at line 153 of file dwarfWalker.h.
References name_.
Referenced by findFunction(), parseBaseType(), parseConstPackedVolatile(), parseFormalParam(), parseMember(), parseSubrangeAUX(), parseTypedef(), and parseVariable().
| Object * DwarfWalker::obj | ( | ) | [private] |
Definition at line 205 of file dwarfWalker.C.
References Dyninst::SymtabAPI::Symtab::getObject(), and symtab_.
Referenced by findFunction(), parseLexicalBlock(), parseModule(), and parseVariable().
| Dwarf_Off Dyninst::SymtabAPI::DwarfWalker::offset | ( | ) | [inline, private] |
Definition at line 168 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::offset().
Referenced by addFuncToContainer(), id(), parse_int(), parseArray(), parseBaseType(), parseCommonBlock(), parseConstPackedVolatile(), parseEnum(), parseMultiDimensionalArray(), parseStructUnionClass(), parseTypedef(), and parseTypeReferences().
| bool DwarfWalker::parse | ( | ) |
Definition at line 54 of file dwarfWalker.C.
References abbrev_offset, addr_size, contexts_, cu_header_length, Dyninst::SymtabAPI::dataUnknownType, dbg(), dwarf_printf, extension_size, Dyninst::SymtabAPI::Symtab::file(), Dyninst::SymtabAPI::typeCollection::getModTypeCollection(), mod_, next_cu_header, offset_size, parseModule(), Dyninst::SymtabAPI::DwarfWalker::Contexts::pop(), Dyninst::SymtabAPI::DwarfWalker::Contexts::push(), signature, symtab_, typeoffset, and version.
Referenced by Dyninst::SymtabAPI::Object::parseTypeInfo().
| bool DwarfWalker::parse_int | ( | Dwarf_Die | entry, | |
| bool | parseSiblings | |||
| ) | [private] |
Definition at line 213 of file dwarfWalker.C.
References Dyninst::SymtabAPI::DwarfWalker::Contexts::c, clearFunc(), contexts_, curEnclosure(), curFunc(), curName(), dbg(), DWARF_CHECK_RET, dwarf_printf, enclosureMap, entry(), findOffset(), findTag(), Dyninst::SymtabAPI::Aggregate::getAllMangledNames(), offset(), parseArray(), parseBaseType(), parseChild(), parseCommonBlock(), parseConstant(), parseConstPackedVolatile(), parseEnum(), parseEnumEntry(), parseFormalParam(), parseInheritance(), parseLexicalBlock(), parseMember(), parseSibling(), parseStructUnionClass(), parseSubprogram(), parseSubrange(), parseTypedef(), parseTypeReferences(), parseVariable(), Dyninst::SymtabAPI::DwarfWalker::Contexts::pop(), Dyninst::SymtabAPI::DwarfWalker::Contexts::push(), setEntry(), setParseSibling(), and tag().
Referenced by parseModule(), and parseSubprogram().
| bool DwarfWalker::parseArray | ( | ) | [private] |
Definition at line 784 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), contexts_, curName(), dbg(), DWARF_FAIL_RET, dwarf_printf, entry(), findName(), findType(), Dyninst::SymtabAPI::typeArray::getBaseType(), Dyninst::SymtabAPI::rangedType::getHigh(), Dyninst::SymtabAPI::rangedType::getLow(), Dyninst::SymtabAPI::Type::getName(), offset(), parseMultiDimensionalArray(), Dyninst::SymtabAPI::DwarfWalker::Contexts::pop(), Dyninst::SymtabAPI::DwarfWalker::Contexts::push(), setParseChild(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseBaseType | ( | ) | [private] |
Definition at line 736 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dwarf_printf, findName(), findSize(), Dyninst::SymtabAPI::Type::getName(), nameDefined(), offset(), and tc().
Referenced by parse_int().
| bool Dyninst::SymtabAPI::DwarfWalker::parseChild | ( | ) | [inline, private] |
Definition at line 163 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::parseChild().
Referenced by parse_int().
| bool DwarfWalker::parseCommonBlock | ( | ) | [private] |
Definition at line 502 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addGlobalVariable(), Dyninst::SymtabAPI::anyName, DWARF_FAIL_RET, dwarf_printf, entry(), Dyninst::SymtabAPI::Symtab::findSymbol(), Dyninst::SymtabAPI::typeCollection::findVariableType(), offset(), setCommon(), Dyninst::SymtabAPI::Symbol::ST_OBJECT, symtab(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseConstant | ( | ) | [private] |
| bool DwarfWalker::parseConstPackedVolatile | ( | ) | [private] |
Definition at line 982 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dwarf_printf, findName(), findType(), fixName(), nameDefined(), offset(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseEnum | ( | ) | [private] |
Definition at line 858 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dwarf_printf, findName(), offset(), setEnum(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseEnumEntry | ( | ) | [private] |
Definition at line 931 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeEnum::addConstant(), curEnum(), curName(), dwarf_printf, findName(), and findValue().
Referenced by parse_int().
| bool DwarfWalker::parseFormalParam | ( | ) | [private] |
Definition at line 657 of file dwarfWalker.C.
References abstractEntry(), Dyninst::SymtabAPI::localVar::addLocation(), Dyninst::SymtabAPI::Function::addParam(), curFunc(), curName(), decodeLocationList(), dwarf_printf, findName(), findType(), Dyninst::SymtabAPI::Aggregate::getAllMangledNames(), getLineInformation(), Dyninst::SymtabAPI::Type::getName(), handleAbstractOrigin(), nameDefined(), and setSpecEntry().
Referenced by parse_int().
| bool DwarfWalker::parseInheritance | ( | ) | [private] |
Definition at line 870 of file dwarfWalker.C.
References Dyninst::SymtabAPI::fieldListType::addField(), curEnclosure(), dwarf_printf, findType(), and findVisibility().
Referenced by parse_int().
| bool DwarfWalker::parseLexicalBlock | ( | ) | [private] |
Definition at line 441 of file dwarfWalker.C.
References clearRanges(), Dyninst::SymtabAPI::Object::convertDebugOffset(), dbg(), DWARF_FAIL_RET, dwarf_printf, entry(), findConstant(), hasRanges(), obj(), and setRange().
Referenced by parse_int(), and parseSubprogram().
| bool DwarfWalker::parseMember | ( | ) | [private] |
Definition at line 944 of file dwarfWalker.C.
References Dyninst::SymtabAPI::fieldListType::addField(), curEnclosure(), curName(), decodeLocationList(), dwarf_printf, findName(), findType(), fixBitFields(), Dyninst::SymtabAPI::Type::getSize(), and nameDefined().
Referenced by parse_int().
| bool DwarfWalker::parseModule | ( | Module *& | fixUnknownMod | ) | [private] |
Definition at line 110 of file dwarfWalker.C.
References buildSrcFiles(), compile_offset, Dyninst::SymtabAPI::Object::convertDebugOffset(), dbg(), DWARF_CHECK_RET, DWARF_ERROR_RET, DWARF_FAIL_RET, dwarf_printf, enclosureMap, extract_pathname_tail(), Dyninst::SymtabAPI::Symtab::file(), Dyninst::SymtabAPI::Module::fileName(), findConstant(), Dyninst::SymtabAPI::Symtab::getDefaultModule(), Dyninst::SymtabAPI::typeCollection::getModTypeCollection(), mod_, modHigh, modLow, obj(), parse_int(), setEntry(), symtab(), and tc_.
Referenced by parse().
| typeArray * DwarfWalker::parseMultiDimensionalArray | ( | Dwarf_Die | firstRange, | |
| Type * | elementType | |||
| ) | [private] |
Definition at line 1742 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), dbg(), DWARF_CHECK_RET, DWARF_FAIL_RET, offset(), parseSubrangeAUX(), and tc().
Referenced by parseArray().
| bool Dyninst::SymtabAPI::DwarfWalker::parseSibling | ( | ) | [inline, private] |
Definition at line 162 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::parseSibling().
Referenced by parse_int().
| bool DwarfWalker::parseStructUnionClass | ( | ) | [private] |
Definition at line 891 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dwarf_printf, findName(), findSize(), hasDeclaration(), offset(), setEnclosure(), tag(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseSubprogram | ( | ) | [private] |
Definition at line 368 of file dwarfWalker.C.
References abstractEntry(), addFuncToContainer(), curEnclosure(), curFunc(), curName(), dbg(), dwarf_printf, findFuncName(), findFunction(), getFrameBase(), getReturnType(), handleAbstractOrigin(), handleSpecification(), parse_int(), parsedFuncs, parseLexicalBlock(), setParseChild(), and specEntry().
Referenced by parse_int().
| bool DwarfWalker::parseSubrange | ( | ) | [private] |
Definition at line 848 of file dwarfWalker.C.
References dwarf_printf, entry(), and parseSubrangeAUX().
Referenced by parse_int().
| bool DwarfWalker::parseSubrangeAUX | ( | Dwarf_Die | entry, | |
| std::string & | lobound, | |||
| std::string & | hibound | |||
| ) | [private] |
Definition at line 1664 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dbg(), decipherBound(), DWARF_CHECK_RET, DWARF_ERROR_RET, dwarf_printf, findName(), Dyninst::SymtabAPI::lang_C, Dyninst::SymtabAPI::lang_CMFortran, Dyninst::SymtabAPI::lang_CPlusPlus, Dyninst::SymtabAPI::lang_Fortran, Dyninst::SymtabAPI::lang_Fortran_with_pretty_debug, mod(), nameDefined(), and tc().
Referenced by parseMultiDimensionalArray(), and parseSubrange().
| bool DwarfWalker::parseTypedef | ( | ) | [private] |
Definition at line 766 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dwarf_printf, findName(), findType(), fixName(), nameDefined(), offset(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseTypeReferences | ( | ) | [private] |
Definition at line 1000 of file dwarfWalker.C.
References Dyninst::SymtabAPI::typeCollection::addOrUpdateType(), curName(), dwarf_printf, findName(), findType(), offset(), tag(), and tc().
Referenced by parse_int().
| bool DwarfWalker::parseVariable | ( | ) | [private] |
Definition at line 549 of file dwarfWalker.C.
References Dyninst::SymtabAPI::fieldListType::addField(), Dyninst::SymtabAPI::typeCollection::addGlobalVariable(), Dyninst::SymtabAPI::Function::addLocalVar(), Dyninst::SymtabAPI::localVar::addLocation(), Dyninst::SymtabAPI::Object::convertDebugOffset(), curEnclosure(), curFunc(), curName(), decodeLocationList(), dwarf_printf, findName(), findType(), Dyninst::SymtabAPI::Symtab::findVariableByOffset(), getLineInformation(), Dyninst::SymtabAPI::localVar::getName(), handleSpecification(), nameDefined(), obj(), removeFortranUnderscore(), Dyninst::SymtabAPI::Variable::setType(), Dyninst::storageAddr, Dyninst::storageClass2Str(), Dyninst::storageRefClass2Str(), Dyninst::storageRegOffset, symtab(), and tc().
Referenced by parse_int().
| range_set_t::iterator Dyninst::SymtabAPI::DwarfWalker::ranges_begin | ( | ) | [inline, private] |
Definition at line 178 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::ranges().
Referenced by constructConstantVariableLocation(), and decodeLocationListForStaticOffsetOrAddress().
| range_set_t::iterator Dyninst::SymtabAPI::DwarfWalker::ranges_end | ( | ) | [inline, private] |
Definition at line 179 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::ranges().
Referenced by constructConstantVariableLocation(), and decodeLocationListForStaticOffsetOrAddress().
| void DwarfWalker::removeFortranUnderscore | ( | std::string & | name | ) | [private] |
Definition at line 1650 of file dwarfWalker.C.
References curEnclosure(), curFunc(), Dyninst::SymtabAPI::lang_CMFortran, Dyninst::SymtabAPI::lang_Fortran, Dyninst::SymtabAPI::lang_Fortran_with_pretty_debug, Dyninst::SymtabAPI::Module::language(), and mod().
Referenced by parseVariable().
| void Dyninst::SymtabAPI::DwarfWalker::setAbstractEntry | ( | Dwarf_Die | se | ) | [inline, private] |
Definition at line 186 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setAbstractEntry().
Referenced by handleAbstractOrigin().
| void Dyninst::SymtabAPI::DwarfWalker::setCommon | ( | typeCommon * | c | ) | [inline, private] |
Definition at line 147 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setCommon().
Referenced by parseCommonBlock().
| void Dyninst::SymtabAPI::DwarfWalker::setEnclosure | ( | fieldListType * | f | ) | [inline, private] |
Definition at line 149 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setEnclosure().
Referenced by parseStructUnionClass().
| void DwarfWalker::setEntry | ( | Dwarf_Die | entry | ) | [private] |
Definition at line 2039 of file dwarfWalker.C.
References contexts_, Dyninst::SymtabAPI::DwarfWalker::Contexts::setAbstractEntry(), Dyninst::SymtabAPI::DwarfWalker::Contexts::setEntry(), and Dyninst::SymtabAPI::DwarfWalker::Contexts::setSpecEntry().
Referenced by parse_int(), and parseModule().
| void Dyninst::SymtabAPI::DwarfWalker::setEnum | ( | typeEnum * | e | ) | [inline, private] |
Definition at line 148 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setEnum().
Referenced by parseEnum().
| void Dyninst::SymtabAPI::DwarfWalker::setFunc | ( | Function * | f | ) | [inline, private] |
Definition at line 146 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setFunc().
Referenced by findFunction().
| void Dyninst::SymtabAPI::DwarfWalker::setOffset | ( | Dwarf_Off | offset | ) | [inline, private] |
Definition at line 188 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setOffset().
Referenced by findOffset().
| void Dyninst::SymtabAPI::DwarfWalker::setParseChild | ( | bool | p | ) | [inline, private] |
Definition at line 165 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setParseChild().
Referenced by parseArray(), and parseSubprogram().
| void Dyninst::SymtabAPI::DwarfWalker::setParseSibling | ( | bool | p | ) | [inline, private] |
Definition at line 164 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setParseSibling().
Referenced by parse_int().
| void Dyninst::SymtabAPI::DwarfWalker::setRange | ( | std::pair< Address, Address > | range | ) | [inline, private] |
Definition at line 189 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setRange().
Referenced by parseLexicalBlock().
| void Dyninst::SymtabAPI::DwarfWalker::setSpecEntry | ( | Dwarf_Die | se | ) | [inline, private] |
Definition at line 185 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setSpecEntry().
Referenced by handleSpecification(), and parseFormalParam().
| void Dyninst::SymtabAPI::DwarfWalker::setTag | ( | Dwarf_Half | tag | ) | [inline, private] |
Definition at line 187 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::setTag().
Referenced by findTag().
| bool Dyninst::SymtabAPI::DwarfWalker::setup | ( | Dwarf_Die | dieEntry, | |
| Dwarf_Off | modOffset, | |||
| Address | lowpc | |||
| ) | [private] |
| Dwarf_Die Dyninst::SymtabAPI::DwarfWalker::specEntry | ( | ) | [inline, private] |
Definition at line 172 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::specEntry().
Referenced by findEntryToUse(), findFuncName(), findName(), findSize(), findType(), getLineInformation(), getReturnType(), and parseSubprogram().
| std::vector<std::string>& Dyninst::SymtabAPI::DwarfWalker::srcFiles | ( | ) | [inline, private] |
Definition at line 158 of file dwarfWalker.h.
References srcFiles_.
Referenced by getLineInformation().
| Symtab* Dyninst::SymtabAPI::DwarfWalker::symtab | ( | ) | [inline, private] |
Definition at line 156 of file dwarfWalker.h.
References symtab_.
Referenced by addFuncToContainer(), decodeLocationListForStaticOffsetOrAddress(), findFunction(), parseCommonBlock(), parseModule(), and parseVariable().
| Dwarf_Half Dyninst::SymtabAPI::DwarfWalker::tag | ( | ) | [inline, private] |
Definition at line 167 of file dwarfWalker.h.
References contexts_, and Dyninst::SymtabAPI::DwarfWalker::Contexts::tag().
Referenced by fixName(), parse_int(), parseStructUnionClass(), and parseTypeReferences().
| typeCollection* Dyninst::SymtabAPI::DwarfWalker::tc | ( | ) | [inline, private] |
Definition at line 159 of file dwarfWalker.h.
References tc_.
Referenced by findType(), getReturnType(), parseArray(), parseBaseType(), parseCommonBlock(), parseConstPackedVolatile(), parseEnum(), parseMultiDimensionalArray(), parseStructUnionClass(), parseSubrangeAUX(), parseTypedef(), parseTypeReferences(), and parseVariable().
Dwarf_Unsigned Dyninst::SymtabAPI::DwarfWalker::abbrev_offset [private] |
Definition at line 275 of file dwarfWalker.h.
Referenced by parse().
Dwarf_Half Dyninst::SymtabAPI::DwarfWalker::addr_size [private] |
Definition at line 276 of file dwarfWalker.h.
Referenced by decodeExpression(), and parse().
Dwarf_Off Dyninst::SymtabAPI::DwarfWalker::compile_offset [private] |
Definition at line 285 of file dwarfWalker.h.
Referenced by id(), and parseModule().
Definition at line 260 of file dwarfWalker.h.
Referenced by abstractEntry(), clearFunc(), clearRanges(), curCommon(), curEnclosure(), curEnum(), curFunc(), entry(), hasRanges(), offset(), parse(), parse_int(), parseArray(), parseChild(), parseSibling(), ranges_begin(), ranges_end(), setAbstractEntry(), setCommon(), setEnclosure(), setEntry(), setEnum(), setFunc(), setOffset(), setParseChild(), setParseSibling(), setRange(), setSpecEntry(), setTag(), specEntry(), and tag().
Dwarf_Unsigned Dyninst::SymtabAPI::DwarfWalker::cu_header_length [private] |
Definition at line 273 of file dwarfWalker.h.
Referenced by parse().
Dwarf_Debug& Dyninst::SymtabAPI::DwarfWalker::dbg_ [private] |
Definition at line 262 of file dwarfWalker.h.
Referenced by dbg().
std::map<Dwarf_Off, fieldListType *> Dyninst::SymtabAPI::DwarfWalker::enclosureMap [private] |
Definition at line 256 of file dwarfWalker.h.
Referenced by parse_int(), and parseModule().
Dwarf_Half Dyninst::SymtabAPI::DwarfWalker::extension_size [private] |
Definition at line 278 of file dwarfWalker.h.
Referenced by parse().
Module* Dyninst::SymtabAPI::DwarfWalker::mod_ [private] |
Definition at line 263 of file dwarfWalker.h.
Referenced by mod(), parse(), and parseModule().
Definition at line 272 of file dwarfWalker.h.
Referenced by decodeLocationListForStaticOffsetOrAddress(), and parseModule().
Definition at line 271 of file dwarfWalker.h.
Referenced by decodeLocationListForStaticOffsetOrAddress(), and parseModule().
std::string Dyninst::SymtabAPI::DwarfWalker::name_ [private] |
Definition at line 268 of file dwarfWalker.h.
Referenced by curName(), and nameDefined().
Dwarf_Unsigned Dyninst::SymtabAPI::DwarfWalker::next_cu_header [private] |
Definition at line 281 of file dwarfWalker.h.
Referenced by parse().
Dwarf_Half Dyninst::SymtabAPI::DwarfWalker::offset_size [private] |
Definition at line 277 of file dwarfWalker.h.
Referenced by checkForConstantOrExpr(), and parse().
std::set<Function *> Dyninst::SymtabAPI::DwarfWalker::parsedFuncs [private] |
Definition at line 258 of file dwarfWalker.h.
Referenced by parseSubprogram().
Dwarf_Sig8 Dyninst::SymtabAPI::DwarfWalker::signature [private] |
Definition at line 279 of file dwarfWalker.h.
Referenced by parse().
std::vector<std::string> Dyninst::SymtabAPI::DwarfWalker::srcFiles_ [private] |
Definition at line 265 of file dwarfWalker.h.
Referenced by buildSrcFiles(), and srcFiles().
Symtab* Dyninst::SymtabAPI::DwarfWalker::symtab_ [private] |
Definition at line 264 of file dwarfWalker.h.
Definition at line 266 of file dwarfWalker.h.
Referenced by parseModule(), and tc().
Dwarf_Unsigned Dyninst::SymtabAPI::DwarfWalker::typeoffset [private] |
Definition at line 280 of file dwarfWalker.h.
Referenced by parse().
Dwarf_Half Dyninst::SymtabAPI::DwarfWalker::version [private] |
Definition at line 274 of file dwarfWalker.h.
Referenced by checkForConstantOrExpr(), and parse().
1.6.1