LLVM 22.0.0git
|
Utility class that carries the DWARF compile/type unit and the debug info entry in an object. More...
#include "llvm/DebugInfo/DWARF/DWARFDie.h"
Classes | |
class | attribute_iterator |
class | iterator |
Public Types | |
using | DWARFFormValue = llvm::DWARFFormValue |
Public Member Functions | |
DWARFDie ()=default | |
DWARFDie (DWARFUnit *Unit, const DWARFDebugInfoEntry *D) | |
bool | isValid () const |
operator bool () const | |
const DWARFDebugInfoEntry * | getDebugInfoEntry () const |
DWARFUnit * | getDwarfUnit () const |
const DWARFAbbreviationDeclaration * | getAbbreviationDeclarationPtr () const |
Get the abbreviation declaration for this DIE. | |
uint64_t | getOffset () const |
Get the absolute offset into the debug info or types section. | |
dwarf::Tag | getTag () const |
bool | hasChildren () const |
bool | isNULL () const |
Returns true for a valid DIE that terminates a sibling chain. | |
LLVM_ABI bool | isSubprogramDIE () const |
Returns true if DIE represents a subprogram (not inlined). | |
LLVM_ABI bool | isSubroutineDIE () const |
Returns true if DIE represents a subprogram or an inlined subroutine. | |
LLVM_ABI DWARFDie | getParent () const |
Get the parent of this DIE object. | |
LLVM_ABI DWARFDie | getSibling () const |
Get the sibling of this DIE object. | |
LLVM_ABI DWARFDie | getPreviousSibling () const |
Get the previous sibling of this DIE object. | |
LLVM_ABI DWARFDie | getFirstChild () const |
Get the first child of this DIE object. | |
LLVM_ABI DWARFDie | getLastChild () const |
Get the last child of this DIE object. | |
LLVM_ABI void | dump (raw_ostream &OS, unsigned indent=0, DIDumpOptions DumpOpts=DIDumpOptions()) const |
Dump the DIE and all of its attributes to the supplied stream. | |
LLVM_ABI LLVM_DUMP_METHOD void | dump () const |
Convenience zero-argument overload for debugging. | |
LLVM_ABI std::optional< DWARFFormValue > | find (dwarf::Attribute Attr) const |
Extract the specified attribute from this DIE. | |
LLVM_ABI std::optional< DWARFFormValue > | find (ArrayRef< dwarf::Attribute > Attrs) const |
Extract the first value of any attribute in Attrs from this DIE. | |
LLVM_ABI std::optional< DWARFFormValue > | findRecursively (ArrayRef< dwarf::Attribute > Attrs) const |
Extract the first value of any attribute in Attrs from this DIE and recurse into any DW_AT_specification or DW_AT_abstract_origin referenced DIEs. | |
LLVM_ABI DWARFDie | getAttributeValueAsReferencedDie (dwarf::Attribute Attr) const |
Extract the specified attribute from this DIE as the referenced DIE. | |
LLVM_ABI DWARFDie | getAttributeValueAsReferencedDie (const DWARFFormValue &V) const |
LLVM_ABI DWARFDie | resolveTypeUnitReference () const |
LLVM_ABI DWARFDie | resolveReferencedType (dwarf::Attribute Attr) const |
LLVM_ABI DWARFDie | resolveReferencedType (const DWARFFormValue &V) const |
LLVM_ABI std::optional< uint64_t > | getRangesBaseAttribute () const |
Extract the range base attribute from this DIE as absolute section offset. | |
LLVM_ABI std::optional< uint64_t > | getLocBaseAttribute () const |
LLVM_ABI std::optional< uint64_t > | getHighPC (uint64_t LowPC) const |
Get the DW_AT_high_pc attribute value as an address. | |
LLVM_ABI bool | getLowAndHighPC (uint64_t &LowPC, uint64_t &HighPC, uint64_t &SectionIndex) const |
Retrieves DW_AT_low_pc and DW_AT_high_pc from CU. | |
LLVM_ABI Expected< DWARFAddressRangesVector > | getAddressRanges () const |
Get the address ranges for this DIE. | |
LLVM_ABI bool | addressRangeContainsAddress (const uint64_t Address) const |
LLVM_ABI std::optional< uint64_t > | getLanguage () const |
LLVM_ABI Expected< DWARFLocationExpressionsVector > | getLocations (dwarf::Attribute Attr) const |
LLVM_ABI const char * | getSubroutineName (DINameKind Kind) const |
If a DIE represents a subprogram (or inlined subroutine), returns its mangled name (or short name, if mangled is missing). | |
LLVM_ABI const char * | getName (DINameKind Kind) const |
Return the DIE name resolving DW_AT_specification or DW_AT_abstract_origin references if necessary. | |
LLVM_ABI void | getFullName (raw_string_ostream &, std::string *OriginalFullName=nullptr) const |
LLVM_ABI const char * | getShortName () const |
Return the DIE short name resolving DW_AT_specification or DW_AT_abstract_origin references if necessary. | |
LLVM_ABI const char * | getLinkageName () const |
Return the DIE linkage name resolving DW_AT_specification or DW_AT_abstract_origin references if necessary. | |
LLVM_ABI uint64_t | getDeclLine () const |
Returns the declaration line (start line) for a DIE, assuming it specifies a subprogram. | |
LLVM_ABI std::string | getDeclFile (DILineInfoSpecifier::FileLineInfoKind Kind) const |
LLVM_ABI void | getCallerFrame (uint32_t &CallFile, uint32_t &CallLine, uint32_t &CallColumn, uint32_t &CallDiscriminator) 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). | |
LLVM_ABI iterator_range< attribute_iterator > | attributes () const |
Get an iterator range to all attributes in the current DIE only. | |
LLVM_ABI std::optional< uint64_t > | getTypeSize (uint64_t PointerSize) |
Gets the type size (in bytes) for this DIE. | |
iterator | begin () const |
iterator | end () const |
std::reverse_iterator< iterator > | rbegin () const |
std::reverse_iterator< iterator > | rend () const |
iterator_range< iterator > | children () const |
Utility class that carries the DWARF compile/type unit and the debug info entry in an object.
When accessing information from a debug info entry we always need to DWARF compile/type unit in order to extract the info correctly as some information is relative to the compile/type unit. Prior to this class the DWARFUnit and the DWARFDebugInfoEntry was passed around separately and there was the possibility for error if the wrong DWARFUnit was used to extract a unit relative offset. This class helps to ensure that this doesn't happen and also simplifies the attribute extraction calls by not having to specify the DWARFUnit for each call.
Definition at line 43 of file DWARFDie.h.
Definition at line 48 of file DWARFDie.h.
|
default |
Referenced by getAttributeValueAsReferencedDie(), getFirstChild(), getLastChild(), getParent(), getPreviousSibling(), and getSibling().
|
inline |
Definition at line 50 of file DWARFDie.h.
Definition at line 404 of file DWARFDie.cpp.
References llvm::Address, llvm::consumeError(), and getAddressRanges().
iterator_range< DWARFDie::attribute_iterator > DWARFDie::attributes | ( | ) | const |
Get an iterator range to all attributes in the current DIE only.
Definition at line 685 of file DWARFDie.cpp.
References llvm::make_range().
Referenced by dump().
|
inline |
Definition at line 398 of file DWARFDie.h.
References getFirstChild().
Referenced by children(), and rend().
|
inline |
Definition at line 406 of file DWARFDie.h.
References begin(), end(), and llvm::make_range().
Referenced by llvm::analyzeContextInfo(), hasInlineInfo(), parseInlineInfo(), llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain(), and llvm::verifyKeepChain().
LLVM_DUMP_METHOD void DWARFDie::dump | ( | ) | const |
Convenience zero-argument overload for debugging.
Definition at line 653 of file DWARFDie.cpp.
References dump(), and llvm::errs().
Referenced by dump().
void DWARFDie::dump | ( | raw_ostream & | OS, |
unsigned | indent = 0 , |
||
DIDumpOptions | DumpOpts = DIDumpOptions() |
||
) | const |
Dump the DIE and all of its attributes to the supplied stream.
OS | the stream to use for output. |
indent | the number of characters to indent each line that is output. |
Definition at line 595 of file DWARFDie.cpp.
References llvm::Address, attributes(), llvm::DIDumpOptions::ChildRecurseDepth, dump(), dumpAttribute(), dumpParentChain(), llvm::format(), llvm::formatv(), llvm::WithColor::get(), getAbbreviationDeclarationPtr(), llvm::DWARFUnit::getDebugInfoExtractor(), llvm::DWARFUnit::getDIEAtIndex(), getFirstChild(), getOffset(), getParent(), llvm::DWARFDebugInfoEntry::getParentIdx(), getSibling(), getTag(), llvm::DataExtractor::getULEB128(), llvm::raw_ostream::indent(), isValid(), llvm::DataExtractor::isValidOffset(), llvm::Offset, OS, llvm::DIDumpOptions::ShowAddresses, llvm::DIDumpOptions::ShowChildren, llvm::DIDumpOptions::ShowParents, llvm::Tag, and llvm::DIDumpOptions::Verbose.
Referenced by convertFunctionLineTable(), llvm::DWARFCompileUnit::dump(), llvm::DWARFContext::dump(), dump(), and dumpParentChain().
|
inline |
Definition at line 402 of file DWARFDie.h.
References getLastChild().
Referenced by children(), and rbegin().
std::optional< DWARFFormValue > DWARFDie::find | ( | ArrayRef< dwarf::Attribute > | Attrs | ) | const |
Extract the first value of any attribute in Attrs from this DIE.
Extract the first attribute that matches from this DIE only. This call doesn't look for the attribute value in any DW_AT_specification or DW_AT_abstract_origin referenced DIEs. The attributes will be searched linearly in the order they are specified within Attrs.
Attrs | an array of DWARF attribute to look for. |
Definition at line 260 of file DWARFDie.cpp.
References getAbbreviationDeclarationPtr(), getOffset(), and isValid().
std::optional< DWARFFormValue > DWARFDie::find | ( | dwarf::Attribute | Attr | ) | const |
Extract the specified attribute from this DIE.
Extract an attribute value from this DIE only. This call doesn't look for the attribute value in any DW_AT_specification or DW_AT_abstract_origin referenced DIEs.
Attr | the attribute to extract. |
Definition at line 250 of file DWARFDie.cpp.
References getAbbreviationDeclarationPtr(), getOffset(), and isValid().
Referenced by llvm::analyzeContextInfo(), llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmitDebugMacro(), llvm::dwarf_linker::parallel::CompileUnit::CompileUnit(), convertFunctionLineTable(), llvm::logicalview::LVDWARFReader::createScopes(), llvm::gsym::CUInfo::CUInfo(), findRecursively(), getAddressRanges(), getAttributeValueAsReferencedDie(), llvm::DWARFUnit::getBaseAddress(), getCallerFrame(), llvm::getDwoId(), getDwoId(), getHighPC(), llvm::DWARFContext::getInliningInfoForAddress(), getLanguage(), getLocations(), getLocBaseAttribute(), getLowAndHighPC(), llvm::getPCMFile(), getPCMFile(), getRangesBaseAttribute(), getTypeSizeImpl(), hashFullyQualifiedName(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::isClangModuleRef(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::link(), llvm::dwarf_linker::parallel::DWARFLinkerImpl::LinkContext::loadClangModule(), parseInlineInfo(), resolveTypeUnitReference(), llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::save(), llvm::DWARFUnit::tryExtractDIEsIfNeeded(), and llvm::updatePruning().
std::optional< DWARFFormValue > DWARFDie::findRecursively | ( | ArrayRef< dwarf::Attribute > | Attrs | ) | const |
Extract the first value of any attribute in Attrs from this DIE and recurse into any DW_AT_specification or DW_AT_abstract_origin referenced DIEs.
Attrs | an array of DWARF attribute to look for. |
Definition at line 274 of file DWARFDie.cpp.
References D, llvm::SmallVectorBase< Size_T >::empty(), find(), getAttributeValueAsReferencedDie(), llvm::SmallSet< T, N, C >::insert(), isValid(), llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by convertFunctionLineTable(), getDeclFile(), getDeclLine(), getLinkageName(), getShortName(), and parseInlineInfo().
|
inline |
Get the abbreviation declaration for this DIE.
Definition at line 60 of file DWARFDie.h.
References assert(), llvm::DWARFDebugInfoEntry::getAbbreviationDeclarationPtr(), and isValid().
Referenced by llvm::DWARFDie::attribute_iterator::attribute_iterator(), dump(), find(), getTag(), and isNULL().
Expected< DWARFAddressRangesVector > DWARFDie::getAddressRanges | ( | ) | const |
Get the address ranges for this DIE.
Get the hi/low PC range if both attributes are available or exrtracts the non-contiguous address ranges from the DW_AT_ranges attribute.
Extracts the range information from this DIE only. This call doesn't look for the range in any DW_AT_specification or DW_AT_abstract_origin DIEs.
Definition at line 387 of file DWARFDie.cpp.
References find(), llvm::DWARFUnit::findRnglistFromIndex(), llvm::DWARFUnit::findRnglistFromOffset(), getLowAndHighPC(), and isNULL().
Referenced by addressRangeContainsAddress(), llvm::DWARFUnit::collectAddressRanges(), dumpAttribute(), parseInlineInfo(), and llvm::DWARFUnit::updateAddressDieMap().
DWARFDie DWARFDie::getAttributeValueAsReferencedDie | ( | const DWARFFormValue & | V | ) | const |
Definition at line 313 of file DWARFDie.cpp.
References llvm::DWARFUnit::getContext(), llvm::DWARFContext::getTypeUnitForHash(), llvm::DWARFUnitVector::getUnitForOffset(), llvm::DWARFUnit::getUnitVector(), llvm::DWARFUnit::isDWOUnit(), and llvm::Offset.
DWARFDie DWARFDie::getAttributeValueAsReferencedDie | ( | dwarf::Attribute | Attr | ) | const |
Extract the specified attribute from this DIE as the referenced DIE.
Regardless of the reference type, return the correct DWARFDie instance if the attribute exists. The returned DWARFDie object might be from another DWARFUnit, but that is all encapsulated in the new DWARFDie object.
Extract an attribute value from this DIE only. This call doesn't look for the attribute value in any DW_AT_specification or DW_AT_abstract_origin referenced DIEs.
Attr | the attribute to extract. |
Definition at line 306 of file DWARFDie.cpp.
References DWARFDie(), F, find(), and getAttributeValueAsReferencedDie().
Referenced by dumpAttribute(), findRecursively(), getAttributeValueAsReferencedDie(), GetParentDeclContextDIE(), getTypeSizeImpl(), resolveReferencedType(), and llvm::DWARFUnit::updateVariableDieMap().
void DWARFDie::getCallerFrame | ( | uint32_t & | CallFile, |
uint32_t & | CallLine, | ||
uint32_t & | CallColumn, | ||
uint32_t & | CallDiscriminator | ||
) | 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).
This function looks for DW_AT_call attributes in this DIE only, it will not resolve the attribute values in any DW_AT_specification or DW_AT_abstract_origin DIEs.
CallFile | filled in with non-zero if successful, zero if there is no DW_AT_call_file attribute in this DIE. |
CallLine | filled in with non-zero if successful, zero if there is no DW_AT_call_line attribute in this DIE. |
CallColumn | filled in with non-zero if successful, zero if there is no DW_AT_call_column attribute in this DIE. |
CallDiscriminator | filled in with non-zero if successful, zero if there is no DW_AT_GNU_discriminator attribute in this DIE. |
Definition at line 502 of file DWARFDie.cpp.
References find(), and llvm::dwarf::toUnsigned().
Referenced by llvm::DWARFContext::getInliningInfoForAddress().
|
inline |
Definition at line 54 of file DWARFDie.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(), getTypeSizeImpl(), and llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain().
std::string DWARFDie::getDeclFile | ( | DILineInfoSpecifier::FileLineInfoKind | Kind | ) | const |
Definition at line 495 of file DWARFDie.cpp.
References findRecursively().
Referenced by convertFunctionLineTable(), llvm::DWARFContext::getInliningInfoForAddress(), and llvm::DWARFContext::getLineInfoForDataAddress().
uint64_t DWARFDie::getDeclLine | ( | ) | const |
Returns the declaration line (start line) for a DIE, assuming it specifies a subprogram.
This may be fetched from specification or abstract origin for this subprogram by resolving DW_AT_sepcification or DW_AT_abstract_origin references if necessary.
Definition at line 490 of file DWARFDie.cpp.
References findRecursively(), and llvm::dwarf::toUnsigned().
Referenced by llvm::DWARFContext::getInliningInfoForAddress(), and llvm::DWARFContext::getLineInfoForDataAddress().
|
inline |
Definition at line 55 of file DWARFDie.h.
Referenced by llvm::logicalview::LVDWARFReader::createScopes(), llvm::DWARFContext::dump(), dumpAttribute(), llvm::DWARFContext::getDIEsForAddress(), and isVariableIndexable().
DWARFDie DWARFDie::getFirstChild | ( | ) | const |
Get the first child of this DIE object.
Definition at line 673 of file DWARFDie.cpp.
References DWARFDie(), llvm::DWARFUnit::getFirstChild(), and isValid().
Referenced by begin(), dump(), and llvm::DWARFUnit::updateAddressDieMap().
void DWARFDie::getFullName | ( | raw_string_ostream & | OS, |
std::string * | OriginalFullName = nullptr |
||
) | const |
Definition at line 233 of file DWARFDie.cpp.
References llvm::dumpTypeUnqualifiedName(), getShortName(), getTag(), and OS.
Get the DW_AT_high_pc attribute value as an address.
In DWARF version 4 and later the high PC can be encoded as an offset from the DW_AT_low_pc. This function takes care of extracting the value as an address or offset and adds it to the low PC if needed and returns the value as an optional in case the DIE doesn't have a DW_AT_high_pc attribute.
LowPC | the low PC that might be needed to calculate the high PC. |
Definition at line 355 of file DWARFDie.cpp.
References llvm::Address, llvm::dwarf::computeTombstoneAddress(), find(), llvm::DWARFUnit::getAddressByteSize(), and llvm::Offset.
Referenced by getLowAndHighPC().
std::optional< uint64_t > DWARFDie::getLanguage | ( | ) | const |
Definition at line 417 of file DWARFDie.cpp.
References find(), llvm::DWARFUnit::getUnitDIE(), and isValid().
DWARFDie DWARFDie::getLastChild | ( | ) | const |
Get the last child of this DIE object.
Definition at line 679 of file DWARFDie.cpp.
References DWARFDie(), llvm::DWARFUnit::getLastChild(), and isValid().
Referenced by end().
Return the DIE linkage name resolving DW_AT_specification or DW_AT_abstract_origin references if necessary.
Returns null if no name is found.
Definition at line 481 of file DWARFDie.cpp.
References findRecursively(), isValid(), and llvm::dwarf::toString().
Referenced by getName(), getQualifiedNameIndex(), and llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::save().
Expected< DWARFLocationExpressionsVector > DWARFDie::getLocations | ( | dwarf::Attribute | Attr | ) | const |
Definition at line 427 of file DWARFDie.cpp.
References llvm::dwarf::AttributeString(), llvm::createStringError(), llvm::StringRef::data(), data, find(), llvm::DWARFUnit::findLoclistFromOffset(), llvm::dwarf::FormEncodingString(), llvm::DWARFUnit::getLoclistOffset(), llvm::inconvertibleErrorCode(), and llvm::Offset.
Referenced by isVariableIndexable(), and llvm::DWARFUnit::updateVariableDieMap().
std::optional< uint64_t > DWARFDie::getLocBaseAttribute | ( | ) | const |
Definition at line 351 of file DWARFDie.cpp.
References find(), and llvm::dwarf::toSectionOffset().
bool DWARFDie::getLowAndHighPC | ( | uint64_t & | LowPC, |
uint64_t & | HighPC, | ||
uint64_t & | SectionIndex | ||
) | const |
Retrieves DW_AT_low_pc and DW_AT_high_pc from CU.
Returns true if both attributes are present.
Definition at line 372 of file DWARFDie.cpp.
References F, find(), getHighPC(), and llvm::dwarf::toSectionedAddress().
Referenced by dumpAttribute(), and getAddressRanges().
const char * DWARFDie::getName | ( | DINameKind | Kind | ) | const |
Return the DIE name resolving DW_AT_specification or DW_AT_abstract_origin references if necessary.
For the LinkageName case it additionaly searches for ShortName if LinkageName is not found. Returns null if no name is found.
Definition at line 463 of file DWARFDie.cpp.
References getLinkageName(), getShortName(), isValid(), llvm::LinkageName, Name, and llvm::None.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::CompileUnit(), llvm::DWARFTypeUnit::dump(), dumpAttribute(), getQualifiedNameIndex(), getSubroutineName(), and hashFullyQualifiedName().
|
inline |
Get the absolute offset into the debug info or types section.
Definition at line 68 of file DWARFDie.h.
References assert(), llvm::DWARFDebugInfoEntry::getOffset(), and isValid().
Referenced by llvm::dwarf_linker::parallel::DIEAttributeCloner::clone(), convertFunctionLineTable(), dump(), find(), and parseInlineInfo().
DWARFDie DWARFDie::getParent | ( | ) | const |
Get the parent of this DIE object.
Definition at line 655 of file DWARFDie.cpp.
References DWARFDie(), llvm::DWARFUnit::getParent(), and isValid().
Referenced by dump(), dumpParentChain(), llvm::DWARFUnit::getInlinedChainForAddress(), GetParentDeclContextDIE(), and hashFullyQualifiedName().
DWARFDie DWARFDie::getPreviousSibling | ( | ) | const |
Get the previous sibling of this DIE object.
Definition at line 667 of file DWARFDie.cpp.
References DWARFDie(), llvm::DWARFUnit::getPreviousSibling(), and isValid().
Referenced by std::reverse_iterator< llvm::DWARFDie::iterator >::operator++(), llvm::DWARFDie::iterator::operator--(), and std::reverse_iterator< llvm::DWARFDie::iterator >::reverse_iterator().
std::optional< uint64_t > DWARFDie::getRangesBaseAttribute | ( | ) | const |
Extract the range base attribute from this DIE as absolute section offset.
This is a utility function that checks for either the DW_AT_rnglists_base or DW_AT_GNU_ranges_base attribute.
Definition at line 347 of file DWARFDie.cpp.
References find(), and llvm::dwarf::toSectionOffset().
Return the DIE short name resolving DW_AT_specification or DW_AT_abstract_origin references if necessary.
Returns null if no name is found.
Definition at line 474 of file DWARFDie.cpp.
References findRecursively(), isValid(), and llvm::dwarf::toString().
Referenced by getFullName(), getName(), and llvm::dwarf_linker::parallel::AcceleratorRecordsSaver::save().
DWARFDie DWARFDie::getSibling | ( | ) | const |
Get the sibling of this DIE object.
Definition at line 661 of file DWARFDie.cpp.
References DWARFDie(), llvm::DWARFUnit::getSibling(), and isValid().
Referenced by std::reverse_iterator< llvm::DWARFDie::iterator >::base(), dump(), llvm::DWARFDie::iterator::operator++(), std::reverse_iterator< llvm::DWARFDie::iterator >::operator--(), and llvm::DWARFUnit::updateAddressDieMap().
const char * DWARFDie::getSubroutineName | ( | 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 457 of file DWARFDie.cpp.
References getName(), and isSubroutineDIE().
Referenced by llvm::DWARFContext::getInliningInfoForAddress().
|
inline |
Definition at line 73 of file DWARFDie.h.
References getAbbreviationDeclarationPtr().
Referenced by llvm::analyzeContextInfo(), llvm::dwarf_linker::classic::CompileUnit::createOutputDIE(), dump(), getFullName(), llvm::DWARFUnit::getInlinedChainForAddress(), GetParentDeclContextDIE(), llvm::dwarf_linker::classic::CompileUnit::getTag(), getTypeSizeImpl(), hashFullyQualifiedName(), hasInlineInfo(), llvm::isODRCanonicalCandidate(), isSubprogramDIE(), isSubroutineDIE(), parseInlineInfo(), llvm::updateChildIncompleteness(), llvm::updatePruning(), llvm::updateRefIncompleteness(), and llvm::DWARFUnit::updateVariableDieMap().
Gets the type size (in bytes) for this DIE.
PointerSize | the pointer size of the containing CU. |
Definition at line 578 of file DWARFDie.cpp.
References getTypeSizeImpl().
Referenced by llvm::DWARFUnit::updateVariableDieMap().
|
inline |
Definition at line 80 of file DWARFDie.h.
References assert(), llvm::DWARFDebugInfoEntry::hasChildren(), and isValid().
|
inline |
Returns true for a valid DIE that terminates a sibling chain.
Definition at line 86 of file DWARFDie.h.
References getAbbreviationDeclarationPtr().
Referenced by getAddressRanges(), and std::reverse_iterator< llvm::DWARFDie::iterator >::operator--().
bool DWARFDie::isSubprogramDIE | ( | ) | const |
Returns true if DIE represents a subprogram (not inlined).
Definition at line 243 of file DWARFDie.cpp.
References getTag().
Referenced by llvm::DWARFUnit::getInlinedChainForAddress().
bool DWARFDie::isSubroutineDIE | ( | ) | const |
Returns true if DIE represents a subprogram or an inlined subroutine.
Definition at line 245 of file DWARFDie.cpp.
References getTag().
Referenced by getSubroutineName(), and llvm::DWARFUnit::updateAddressDieMap().
|
inline |
Definition at line 52 of file DWARFDie.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneAndEmit(), llvm::logicalview::LVDWARFReader::createScopes(), dump(), dumpAttribute(), find(), findRecursively(), getAbbreviationDeclarationPtr(), getFirstChild(), getLanguage(), getLastChild(), getLinkageName(), llvm::DWARFContext::getLocalsForAddress(), getName(), getOffset(), getParent(), getPreviousSibling(), getShortName(), getSibling(), hasChildren(), hashFullyQualifiedName(), operator bool(), std::reverse_iterator< llvm::DWARFDie::iterator >::operator*(), and llvm::dwarf_linker::parallel::DependencyTracker::verifyKeepChain().
|
inlineexplicit |
Definition at line 53 of file DWARFDie.h.
References isValid().
|
inline |
Definition at line 482 of file DWARFDie.h.
References end().
|
inline |
Definition at line 486 of file DWARFDie.h.
References begin().
DWARFDie DWARFDie::resolveReferencedType | ( | const DWARFFormValue & | V | ) | const |
Definition at line 343 of file DWARFDie.cpp.
References getAttributeValueAsReferencedDie(), and resolveTypeUnitReference().
DWARFDie DWARFDie::resolveReferencedType | ( | dwarf::Attribute | Attr | ) | const |
Definition at line 340 of file DWARFDie.cpp.
References getAttributeValueAsReferencedDie(), and resolveTypeUnitReference().
DWARFDie DWARFDie::resolveTypeUnitReference | ( | ) | const |
Definition at line 329 of file DWARFDie.cpp.
References find(), llvm::DWARFUnit::getContext(), llvm::DWARFContext::getTypeUnitForHash(), and llvm::DWARFUnit::isDWOUnit().
Referenced by resolveReferencedType().