|
LLVM
3.7.0
|
DWARFDebugInfoEntryMinimal - A DIE with only the minimum required data. More...
#include <DWARFDebugInfoEntry.h>
Public Member Functions | |
| DWARFDebugInfoEntryMinimal () | |
| void | dump (raw_ostream &OS, DWARFUnit *u, unsigned recurseDepth, unsigned indent=0) const |
| void | dumpAttribute (raw_ostream &OS, DWARFUnit *u, uint32_t *offset_ptr, uint16_t attr, uint16_t form, unsigned indent=0) const |
| bool | extractFast (const DWARFUnit *U, uint32_t *OffsetPtr) |
| Extracts a debug info entry, which is a child of a given unit, starting at a given offset. More... | |
| uint32_t | getTag () const |
| bool | isNULL () const |
| bool | isSubprogramDIE () const |
| Returns true if DIE represents a subprogram (not inlined). More... | |
| bool | isSubroutineDIE () const |
| Returns true if DIE represents a subprogram or an inlined subroutine. More... | |
| uint32_t | getOffset () const |
| bool | hasChildren () const |
| const DWARFDebugInfoEntryMinimal * | getSibling () const |
| const DWARFDebugInfoEntryMinimal * | getFirstChild () const |
| void | setSibling (const DWARFDebugInfoEntryMinimal *Sibling) |
| const DWARFAbbreviationDeclaration * | getAbbreviationDeclarationPtr () const |
| bool | getAttributeValue (const DWARFUnit *U, const uint16_t Attr, DWARFFormValue &FormValue) const |
| const char * | getAttributeValueAsString (const DWARFUnit *U, const uint16_t Attr, const char *FailValue) const |
| uint64_t | getAttributeValueAsAddress (const DWARFUnit *U, const uint16_t Attr, uint64_t FailValue) const |
| uint64_t | getAttributeValueAsUnsignedConstant (const DWARFUnit *U, const uint16_t Attr, uint64_t FailValue) const |
| uint64_t | getAttributeValueAsReference (const DWARFUnit *U, const uint16_t Attr, uint64_t FailValue) const |
| uint64_t | getAttributeValueAsSectionOffset (const DWARFUnit *U, const uint16_t Attr, uint64_t FailValue) const |
| uint64_t | getRangesBaseAttribute (const DWARFUnit *U, uint64_t FailValue) const |
| bool | getLowAndHighPC (const DWARFUnit *U, uint64_t &LowPC, uint64_t &HighPC) const |
| Retrieves DW_AT_low_pc and DW_AT_high_pc from CU. More... | |
| DWARFAddressRangesVector | getAddressRanges (const DWARFUnit *U) const |
| void | collectChildrenAddressRanges (const DWARFUnit *U, DWARFAddressRangesVector &Ranges) const |
| bool | addressRangeContainsAddress (const DWARFUnit *U, const uint64_t Address) const |
| const char * | getSubroutineName (const DWARFUnit *U, DINameKind Kind) const |
| If a DIE represents a subprogram (or inlined subroutine), returns its mangled name (or short name, if mangled is missing). More... | |
| const char * | getName (const DWARFUnit *U, DINameKind Kind) const |
| Return the DIE name resolving DW_AT_sepcification or DW_AT_abstract_origin references if necessary. More... | |
| void | getCallerFrame (const DWARFUnit *U, uint32_t &CallFile, uint32_t &CallLine, uint32_t &CallColumn) const |
| Retrieves values of DW_AT_call_file, DW_AT_call_line and DW_AT_call_column from DIE (or zeroes if they are missing). More... | |
| DWARFDebugInfoEntryInlinedChain | getInlinedChainForAddress (const DWARFUnit *U, const uint64_t Address) const |
| Get inlined chain for a given address, rooted at the current DIE. More... | |
DWARFDebugInfoEntryMinimal - A DIE with only the minimum required data.
Definition at line 29 of file DWARFDebugInfoEntry.h.
|
inline |
Definition at line 38 of file DWARFDebugInfoEntry.h.
| bool DWARFDebugInfoEntryMinimal::addressRangeContainsAddress | ( | const DWARFUnit * | U, |
| const uint64_t | Address | ||
| ) | const |
Definition at line 367 of file DWARFDebugInfoEntry.cpp.
Referenced by getInlinedChainForAddress().
| void DWARFDebugInfoEntryMinimal::collectChildrenAddressRanges | ( | const DWARFUnit * | U, |
| DWARFAddressRangesVector & | Ranges | ||
| ) | const |
Definition at line 351 of file DWARFDebugInfoEntry.cpp.
References collectChildrenAddressRanges(), and getSibling().
Referenced by collectChildrenAddressRanges().
| void DWARFDebugInfoEntryMinimal::dump | ( | raw_ostream & | OS, |
| DWARFUnit * | u, | ||
| unsigned | recurseDepth, | ||
| unsigned | indent = 0 |
||
| ) | const |
Definition at line 36 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::syntax::Address, dump(), llvm::format(), llvm::dwarf::syntax::WithColor::get(), llvm::DWARFUnit::getDebugInfoExtractor(), getSibling(), llvm::dwarf::getTag(), llvm::DataExtractor::getULEB128(), llvm::raw_ostream::indent(), llvm::DataExtractor::isValidOffset(), llvm::dwarf::syntax::Tag, and llvm::dwarf::TagString().
Referenced by dump().
| void DWARFDebugInfoEntryMinimal::dumpAttribute | ( | raw_ostream & | OS, |
| DWARFUnit * | u, | ||
| uint32_t * | offset_ptr, | ||
| uint16_t | attr, | ||
| uint16_t | form, | ||
| unsigned | indent = 0 |
||
| ) | const |
Definition at line 111 of file DWARFDebugInfoEntry.cpp.
References llvm::DILineInfoSpecifier::AbsoluteFilePath, llvm::dwarf::syntax::Attribute, llvm::dwarf::AttributeString(), llvm::dwarf::AttributeValueString(), llvm::DWARFFormValue::dump(), dumpApplePropertyAttribute(), dumpRanges(), llvm::dwarf::DW_AT_abstract_origin, llvm::dwarf::DW_AT_APPLE_property_attribute, llvm::dwarf::DW_AT_call_file, llvm::dwarf::DW_AT_call_line, llvm::dwarf::DW_AT_decl_file, llvm::dwarf::DW_AT_decl_line, llvm::dwarf::DW_AT_ranges, llvm::dwarf::DW_AT_specification, llvm::dwarf::syntax::Enumerator, llvm::DWARFFormValue::extractValue(), llvm::ARMBuildAttrs::File, findUnitAndExtractFast(), llvm::format(), llvm::dwarf::FormEncodingString(), llvm::dwarf::syntax::WithColor::get(), llvm::DWARFUnit::getAddressByteSize(), llvm::DWARFFormValue::getAsReference(), llvm::DWARFFormValue::getAsUnsignedConstant(), llvm::DWARFUnit::getCompilationDir(), llvm::DWARFUnit::getContext(), llvm::DWARFUnit::getDebugInfoExtractor(), llvm::DWARFContext::getLineTableForUnit(), getName(), llvm::Optional< T >::getValue(), llvm::Optional< T >::hasValue(), llvm::raw_ostream::indent(), llvm::LinkageName, llvm::AArch64CC::LT, and llvm::dwarf::syntax::String.
Extracts a debug info entry, which is a child of a given unit, starting at a given offset.
If DIE can't be extracted, returns false and doesn't change OffsetPtr.
Definition at line 184 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFAbbreviationDeclarationSet::getAbbreviationDeclaration(), llvm::DWARFUnit::getAbbreviations(), llvm::DWARFUnit::getAddressByteSize(), llvm::DWARFUnit::getDebugInfoExtractor(), llvm::DWARFFormValue::getFixedFormSizes(), llvm::DWARFUnit::getNextUnitOffset(), llvm::DataExtractor::getULEB128(), llvm::DWARFUnit::getVersion(), llvm::DataExtractor::isValidOffset(), llvm::ArrayRef< T >::size(), and llvm::DWARFFormValue::skipValue().
Referenced by findUnitAndExtractFast().
|
inline |
Definition at line 85 of file DWARFDebugInfoEntry.h.
| DWARFAddressRangesVector DWARFDebugInfoEntryMinimal::getAddressRanges | ( | const DWARFUnit * | U | ) | const |
Definition at line 332 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::DW_AT_ranges, llvm::DWARFUnit::extractRangeList(), llvm::DWARFDebugRangeList::getAbsoluteRanges(), and llvm::DWARFUnit::getBaseAddress().
| bool DWARFDebugInfoEntryMinimal::getAttributeValue | ( | const DWARFUnit * | U, |
| const uint16_t | Attr, | ||
| DWARFFormValue & | FormValue | ||
| ) | const |
Definition at line 234 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFFormValue::extractValue(), llvm::DWARFUnit::getDebugInfoExtractor(), llvm::getOffset(), llvm::DataExtractor::getULEB128(), and llvm::DWARFFormValue::skipValue().
| uint64_t DWARFDebugInfoEntryMinimal::getAttributeValueAsAddress | ( | const DWARFUnit * | U, |
| const uint16_t | Attr, | ||
| uint64_t | FailValue | ||
| ) | const |
Definition at line 268 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFFormValue::getAsAddress(), llvm::Optional< T >::getValue(), and llvm::Optional< T >::hasValue().
| uint64_t DWARFDebugInfoEntryMinimal::getAttributeValueAsReference | ( | const DWARFUnit * | U, |
| const uint16_t | Attr, | ||
| uint64_t | FailValue | ||
| ) | const |
Definition at line 286 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFFormValue::getAsReference(), llvm::Optional< T >::getValue(), and llvm::Optional< T >::hasValue().
| uint64_t DWARFDebugInfoEntryMinimal::getAttributeValueAsSectionOffset | ( | const DWARFUnit * | U, |
| const uint16_t | Attr, | ||
| uint64_t | FailValue | ||
| ) | const |
Definition at line 295 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFFormValue::getAsSectionOffset(), llvm::Optional< T >::getValue(), and llvm::Optional< T >::hasValue().
Referenced by llvm::DWARFContext::getLineTableForUnit().
| const char * DWARFDebugInfoEntryMinimal::getAttributeValueAsString | ( | const DWARFUnit * | U, |
| const uint16_t | Attr, | ||
| const char * | FailValue | ||
| ) | const |
Definition at line 259 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFFormValue::getAsCString(), llvm::Optional< T >::getValue(), and llvm::Optional< T >::hasValue().
| uint64_t DWARFDebugInfoEntryMinimal::getAttributeValueAsUnsignedConstant | ( | const DWARFUnit * | U, |
| const uint16_t | Attr, | ||
| uint64_t | FailValue | ||
| ) | const |
Definition at line 277 of file DWARFDebugInfoEntry.cpp.
References llvm::DWARFFormValue::getAsUnsignedConstant(), llvm::Optional< T >::getValue(), and llvm::Optional< T >::hasValue().
| void DWARFDebugInfoEntryMinimal::getCallerFrame | ( | const DWARFUnit * | U, |
| uint32_t & | CallFile, | ||
| uint32_t & | CallLine, | ||
| uint32_t & | CallColumn | ||
| ) | const |
Retrieves values of DW_AT_call_file, DW_AT_call_line and DW_AT_call_column from DIE (or zeroes if they are missing).
Definition at line 424 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::DW_AT_call_column, llvm::dwarf::DW_AT_call_file, and llvm::dwarf::DW_AT_call_line.
Referenced by llvm::DWARFContext::getInliningInfoForAddress().
|
inline |
Definition at line 72 of file DWARFDebugInfoEntry.h.
References hasChildren().
| DWARFDebugInfoEntryInlinedChain DWARFDebugInfoEntryMinimal::getInlinedChainForAddress | ( | const DWARFUnit * | U, |
| const uint64_t | Address | ||
| ) | const |
Get inlined chain for a given address, rooted at the current DIE.
Returns empty chain if address is not contained in address range of current DIE.
Definition at line 434 of file DWARFDebugInfoEntry.cpp.
References addressRangeContainsAddress(), llvm::DWARFDebugInfoEntryInlinedChain::DIEs, getSibling(), and llvm::DWARFDebugInfoEntryInlinedChain::U.
Referenced by llvm::DWARFUnit::getInlinedChainForAddress().
| bool DWARFDebugInfoEntryMinimal::getLowAndHighPC | ( | const DWARFUnit * | U, |
| uint64_t & | LowPC, | ||
| uint64_t & | HighPC | ||
| ) | const |
Retrieves DW_AT_low_pc and DW_AT_high_pc from CU.
Returns true if both attributes are present.
Definition at line 314 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::DW_AT_high_pc, and llvm::dwarf::DW_AT_low_pc.
| const char * DWARFDebugInfoEntryMinimal::getName | ( | const DWARFUnit * | U, |
| DINameKind | Kind | ||
| ) | const |
Return the DIE name resolving DW_AT_sepcification or DW_AT_abstract_origin references if necessary.
Returns null if no name is found.
Definition at line 385 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::DW_AT_abstract_origin, llvm::dwarf::DW_AT_linkage_name, llvm::dwarf::DW_AT_MIPS_linkage_name, llvm::dwarf::DW_AT_name, llvm::dwarf::DW_AT_specification, findUnitAndExtractFast(), getName(), llvm::LinkageName, name, and llvm::None.
Referenced by dumpAttribute(), and getName().
|
inline |
Definition at line 60 of file DWARFDebugInfoEntry.h.
| uint64_t DWARFDebugInfoEntryMinimal::getRangesBaseAttribute | ( | const DWARFUnit * | U, |
| uint64_t | FailValue | ||
| ) | const |
Definition at line 305 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::DW_AT_GNU_ranges_base, and llvm::dwarf::DW_AT_ranges_base.
|
inline |
Definition at line 65 of file DWARFDebugInfoEntry.h.
Referenced by collectChildrenAddressRanges(), dump(), and getInlinedChainForAddress().
| const char * DWARFDebugInfoEntryMinimal::getSubroutineName | ( | const DWARFUnit * | U, |
| DINameKind | Kind | ||
| ) | const |
If a DIE represents a subprogram (or inlined subroutine), returns its mangled name (or short name, if mangled is missing).
This name may be fetched from specification or abstract origin for this subprogram. Returns null if no name is found.
Definition at line 377 of file DWARFDebugInfoEntry.cpp.
References getName().
Referenced by getFunctionNameForAddress(), and llvm::DWARFContext::getInliningInfoForAddress().
|
inline |
Definition at line 51 of file DWARFDebugInfoEntry.h.
References llvm::DWARFAbbreviationDeclaration::getTag().
|
inline |
Definition at line 61 of file DWARFDebugInfoEntry.h.
References llvm::DWARFAbbreviationDeclaration::hasChildren(), and isNULL().
Referenced by getFirstChild().
|
inline |
Definition at line 52 of file DWARFDebugInfoEntry.h.
Referenced by hasChildren().
| bool DWARFDebugInfoEntryMinimal::isSubprogramDIE | ( | ) | const |
Returns true if DIE represents a subprogram (not inlined).
Definition at line 224 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::getTag().
| bool DWARFDebugInfoEntryMinimal::isSubroutineDIE | ( | ) | const |
Returns true if DIE represents a subprogram or an inlined subroutine.
Definition at line 228 of file DWARFDebugInfoEntry.cpp.
References llvm::dwarf::getTag().
|
inline |
Definition at line 76 of file DWARFDebugInfoEntry.h.
1.8.6