LLDB mainline
Public Types | Public Member Functions | Protected Attributes | List of all members
lldb_private::plugin::dwarf::DWARFBaseDIE Class Reference

#include <DWARFBaseDIE.h>

Inheritance diagram for lldb_private::plugin::dwarf::DWARFBaseDIE:
Inheritance graph
[legend]

Public Types

enum class  Recurse : bool { no , yes }
 
using DWARFFormValue = dwarf::DWARFFormValue
 

Public Member Functions

 DWARFBaseDIE ()=default
 
 DWARFBaseDIE (DWARFUnit *cu, DWARFDebugInfoEntry *die)
 
 DWARFBaseDIE (const DWARFUnit *cu, DWARFDebugInfoEntry *die)
 
 DWARFBaseDIE (DWARFUnit *cu, const DWARFDebugInfoEntry *die)
 
 DWARFBaseDIE (const DWARFUnit *cu, const DWARFDebugInfoEntry *die)
 
 operator bool () const
 
bool IsValid () const
 
bool HasChildren () const
 
bool Supports_DW_AT_APPLE_objc_complete_type () const
 
SymbolFileDWARFGetDWARF () const
 
DWARFUnitGetCU () const
 
DWARFDebugInfoEntryGetDIE () const
 
std::optional< DIERefGetDIERef () const
 
void Set (DWARFUnit *cu, DWARFDebugInfoEntry *die)
 
void Clear ()
 
const DWARFDataExtractorGetData () const
 
dw_tag_t Tag () const
 
dw_offset_t GetOffset () const
 
lldb::user_id_t GetID () const
 
const char * GetName () const
 
lldb::ModuleSP GetModule () const
 
const char * GetAttributeValueAsString (const dw_attr_t attr, const char *fail_value) const
 
uint64_t GetAttributeValueAsUnsigned (const dw_attr_t attr, uint64_t fail_value) const
 
std::optional< uint64_t > GetAttributeValueAsOptionalUnsigned (const dw_attr_t attr) const
 
uint64_t GetAttributeValueAsAddress (const dw_attr_t attr, uint64_t fail_value) const
 
DWARFAttributes GetAttributes (Recurse recurse=Recurse::yes) const
 
dw_tag_t getTag () const
 
const char * getShortName () const
 

Protected Attributes

DWARFUnitm_cu = nullptr
 
DWARFDebugInfoEntrym_die = nullptr
 

Detailed Description

Definition at line 29 of file DWARFBaseDIE.h.

Member Typedef Documentation

◆ DWARFFormValue

Definition at line 31 of file DWARFBaseDIE.h.

Member Enumeration Documentation

◆ Recurse

Enumerator
no 
yes 

Definition at line 119 of file DWARFBaseDIE.h.

Constructor & Destructor Documentation

◆ DWARFBaseDIE() [1/5]

lldb_private::plugin::dwarf::DWARFBaseDIE::DWARFBaseDIE ( )
default

◆ DWARFBaseDIE() [2/5]

lldb_private::plugin::dwarf::DWARFBaseDIE::DWARFBaseDIE ( DWARFUnit cu,
DWARFDebugInfoEntry die 
)
inline

Definition at line 34 of file DWARFBaseDIE.h.

◆ DWARFBaseDIE() [3/5]

lldb_private::plugin::dwarf::DWARFBaseDIE::DWARFBaseDIE ( const DWARFUnit cu,
DWARFDebugInfoEntry die 
)
inline

Definition at line 37 of file DWARFBaseDIE.h.

◆ DWARFBaseDIE() [4/5]

lldb_private::plugin::dwarf::DWARFBaseDIE::DWARFBaseDIE ( DWARFUnit cu,
const DWARFDebugInfoEntry die 
)
inline

Definition at line 40 of file DWARFBaseDIE.h.

◆ DWARFBaseDIE() [5/5]

lldb_private::plugin::dwarf::DWARFBaseDIE::DWARFBaseDIE ( const DWARFUnit cu,
const DWARFDebugInfoEntry die 
)
inline

Definition at line 43 of file DWARFBaseDIE.h.

Member Function Documentation

◆ Clear()

void lldb_private::plugin::dwarf::DWARFBaseDIE::Clear ( )
inline

◆ GetAttributes()

DWARFAttributes DWARFBaseDIE::GetAttributes ( Recurse  recurse = Recurse::yes) const

◆ GetAttributeValueAsAddress()

uint64_t DWARFBaseDIE::GetAttributeValueAsAddress ( const dw_attr_t  attr,
uint64_t  fail_value 
) const

◆ GetAttributeValueAsOptionalUnsigned()

std::optional< uint64_t > DWARFBaseDIE::GetAttributeValueAsOptionalUnsigned ( const dw_attr_t  attr) const

◆ GetAttributeValueAsString()

const char * DWARFBaseDIE::GetAttributeValueAsString ( const dw_attr_t  attr,
const char *  fail_value 
) const

◆ GetAttributeValueAsUnsigned()

uint64_t DWARFBaseDIE::GetAttributeValueAsUnsigned ( const dw_attr_t  attr,
uint64_t  fail_value 
) const

◆ GetCU()

DWARFUnit * lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU ( ) const
inline

Definition at line 59 of file DWARFBaseDIE.h.

References m_cu.

Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType(), lldb_private::plugin::dwarf::SymbolFileDWARF::ConstructFunctionDemangledName(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), lldb_private::plugin::dwarf::SymbolFileDWARF::DIEInDeclContext(), ExtractDataMemberLocation(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindDefinitionDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindGlobalVariables(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindNamespace(), fixupExternalAddrZeroVariable(), lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetAttributes(), lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetAttributeValue(), GetAttributeValueAsAddress(), GetAttributeValueAsOptionalUnsigned(), lldb_private::plugin::dwarf::DWARFDIE::GetAttributeValueAsReferenceDIE(), GetAttributeValueAsString(), GetAttributeValueAsUnsigned(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetContainingDeclContext(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDecl(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDeclContext(), lldb_private::plugin::dwarf::DWARFDIE::GetDIENamesAndRanges(), GetExprListFromAtConstValue(), GetExprListFromAtLocation(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetFunction(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::plugin::dwarf::DWARFDIE::GetReferencedDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetTypeForDIE(), GetUnitName(), DWARFASTParserClang::MapDeclDIEToDefDIE(), lldb_private::plugin::dwarf::operator==(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseBlocksRecursive(), DWARFASTParserClang::ParseChildMembers(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseFunction(), DWARFASTParserClang::ParseFunctionFromDWARF(), DWARFASTParserClang::ParseRustVariantPart(), DWARFASTParserClang::ParseSingleMember(), DWARFASTParserClang::ParseStructureLikeDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseType(), DWARFASTParserClang::ParseTypeFromClangModule(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariablesForContext(), and lldb_private::plugin::dwarf::DWARFIndex::ProcessTypeDIEMatchQuery().

◆ GetData()

const DWARFDataExtractor & DWARFBaseDIE::GetData ( ) const

◆ GetDIE()

DWARFDebugInfoEntry * lldb_private::plugin::dwarf::DWARFBaseDIE::GetDIE ( ) const
inline

◆ GetDIERef()

std::optional< DIERef > DWARFBaseDIE::GetDIERef ( ) const

◆ GetDWARF()

SymbolFileDWARF * DWARFBaseDIE::GetDWARF ( ) const

Definition at line 99 of file DWARFBaseDIE.cpp.

References lldb_private::plugin::dwarf::DWARFUnit::GetSymbolFileDWARF(), and m_cu.

Referenced by DWARFASTParserClang::CompleteRecordType(), DWARFASTParserClang::CompleteTypeFromDWARF(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), DWARFASTParserClang::GetClangDeclContextContainingDIE(), DWARFASTParserClang::GetClangDeclContextForDIE(), DWARFASTParserClang::GetClangDeclForDIE(), GetContainingClangModule(), GetModule(), GetPtrAuthMofidierPayload(), lldb_private::plugin::dwarf::DWARFASTParser::GetTypeForDIE(), DWARFASTParserClang::MapDeclDIEToDefDIE(), DWARFASTParserClang::ParseArrayType(), DWARFASTParserClang::ParseChildMembers(), DWARFASTParserClang::ParseCXXMethod(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseFunctionFromDWARF(), DWARFASTParserClang::ParseObjCMethod(), DWARFASTParserClang::ParseObjCProperty(), DWARFASTParserClang::ParsePointerToMemberType(), DWARFASTParserClang::ParseRustVariantPart(), DWARFASTParserClang::ParseSingleMember(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTypeFromClangModule(), DWARFASTParserClang::ParseTypeFromDWARF(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIECached(), PrepareContextToReceiveMembers(), lldb_private::plugin::dwarf::DWARFIndex::ProcessFunctionDIE(), lldb_private::plugin::dwarf::DWARFDIE::ResolveType(), and lldb_private::plugin::dwarf::DWARFDIE::ResolveTypeUID().

◆ GetID()

lldb::user_id_t DWARFBaseDIE::GetID ( ) const

Definition at line 69 of file DWARFBaseDIE.cpp.

References GetDIERef(), and LLDB_INVALID_UID.

Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE(), DWARFASTParserClang::GetClangDeclForDIE(), GetDeclContextImpl(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetFunction(), GetTypeLookupContextImpl(), lldb_private::plugin::dwarf::DWARFDIE::LookupDeepestBlock(), DWARFASTParserClang::MapDeclDIEToDefDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseAndAppendGlobalVariable(), DWARFASTParserClang::ParseArrayType(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseBlocksRecursive(), DWARFASTParserClang::ParseChildParameters(), DWARFASTParserClang::ParseCXXMethod(), DWARFASTParserClang::ParseEnum(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseFunction(), DWARFASTParserClang::ParseFunctionFromDWARF(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseFunctions(), DWARFASTParserClang::ParseObjCMethod(), DWARFASTParserClang::ParseObjCProperty(), DWARFASTParserClang::ParsePointerToMemberType(), DWARFASTParserClang::ParseSingleMember(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseType(), DWARFASTParserClang::ParseTypeFromClangModule(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseTypes(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariablesForContext(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariablesInFunctionContextRecursive(), lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveFunction(), lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveFunctionAndBlock(), DWARFASTParserClang::UpdateSymbolContextScopeForType(), and lldb_private::plugin::dwarf::UniqueDWARFASTType::UpdateToDefDIE().

◆ GetModule()

lldb::ModuleSP DWARFBaseDIE::GetModule ( ) const

Definition at line 84 of file DWARFBaseDIE.cpp.

References GetDWARF().

Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::ParseFunction().

◆ GetName()

const char * DWARFBaseDIE::GetName ( ) const

◆ GetOffset()

dw_offset_t DWARFBaseDIE::GetOffset ( ) const

◆ getShortName()

const char * lldb_private::plugin::dwarf::DWARFBaseDIE::getShortName ( ) const
inline

Definition at line 126 of file DWARFBaseDIE.h.

References GetName().

◆ getTag()

dw_tag_t lldb_private::plugin::dwarf::DWARFBaseDIE::getTag ( ) const
inline

Definition at line 124 of file DWARFBaseDIE.h.

References Tag().

◆ HasChildren()

bool DWARFBaseDIE::HasChildren ( ) const

◆ IsValid()

bool lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid ( ) const
inline

Definition at line 50 of file DWARFBaseDIE.h.

References m_cu, and m_die.

Referenced by lldb_private::plugin::dwarf::DWARFDIE::AppendTypeName(), lldb_private::plugin::dwarf::SymbolFileDWARF::ConstructFunctionDemangledName(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), lldb_private::plugin::dwarf::DWARFUnit::ExtractUnitDIEIfNeeded(), GetAttributes(), GetAttributeValueAsAddress(), GetAttributeValueAsOptionalUnsigned(), lldb_private::plugin::dwarf::DWARFDIE::GetAttributeValueAsReferenceDIE(), GetAttributeValueAsString(), GetAttributeValueAsUnsigned(), DWARFASTParserClang::GetClangDeclForDIE(), GetContainingClangModule(), GetContainingClangModuleDIE(), GetData(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetDIENamesAndRanges(), GetDIERef(), lldb_private::plugin::dwarf::DWARFDIE::GetFirstChild(), lldb_private::plugin::dwarf::DWARFDIE::getLanguage(), lldb_private::plugin::dwarf::DWARFDIE::GetMangledName(), GetName(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), GetOffset(), DWARFASTParserClang::GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFDIE::GetParent(), lldb_private::plugin::dwarf::DWARFDIE::GetPubname(), lldb_private::plugin::dwarf::DWARFDIE::GetReferencedDIE(), lldb_private::plugin::dwarf::DWARFDIE::GetSibling(), DWARFASTParserClang::GetUniqueTypeNameAndDeclaration(), lldb_private::plugin::dwarf::DWARFDIE::LookupDeepestBlock(), operator bool(), lldb_private::plugin::dwarf::DWARFDIE::child_iterator::operator*(), lldb_private::plugin::dwarf::DWARFDIE::child_iterator::operator++(), lldb_private::plugin::dwarf::DWARFDIE::child_iterator::operator==(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseCallEdgesInFunction(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseFunction(), lldb_private::plugin::dwarf::DWARFDIE::resolveReferencedType(), and lldb_private::plugin::dwarf::DWARFDIE::ResolveType().

◆ operator bool()

lldb_private::plugin::dwarf::DWARFBaseDIE::operator bool ( ) const
inlineexplicit

Definition at line 48 of file DWARFBaseDIE.h.

References IsValid().

◆ Set()

void lldb_private::plugin::dwarf::DWARFBaseDIE::Set ( DWARFUnit cu,
DWARFDebugInfoEntry die 
)
inline

Definition at line 65 of file DWARFBaseDIE.h.

References Clear(), m_cu, and m_die.

◆ Supports_DW_AT_APPLE_objc_complete_type()

bool lldb_private::plugin::dwarf::DWARFBaseDIE::Supports_DW_AT_APPLE_objc_complete_type ( ) const

◆ Tag()

dw_tag_t DWARFBaseDIE::Tag ( ) const

Definition at line 31 of file DWARFBaseDIE.cpp.

References m_die, and lldb_private::plugin::dwarf::DWARFDebugInfoEntry::Tag().

Referenced by lldb_private::plugin::dwarf::DWARFDIE::AppendTypeName(), DWARFASTParserClang::CompleteRecordType(), lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType(), DWARFASTParserClang::CompleteTypeFromDWARF(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), DWARFASTParserClang::CreateStaticMemberVariable(), lldb_private::plugin::dwarf::SymbolFileDWARF::DIEInDeclContext(), lldb_private::plugin::dwarf::UniqueDWARFASTTypeList::Find(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindBlockContainingSpecification(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindDefinitionDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindGlobalVariables(), DWARFASTParserClang::GetClangDeclContextForDIE(), DWARFASTParserClang::GetClangDeclForDIE(), GetContainingClangModuleDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDeclContextDIEContainingDIE(), DWARFASTParserClang::GetDeclContextForBlock(), GetDeclContextImpl(), GetDWARFDeclContextImpl(), GetParentDeclContextDIEImpl(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetParentSymbolContextDIE(), getTag(), GetTypeLookupContextImpl(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetTypes(), DWARFASTParserClang::GetUniqueTypeNameAndDeclaration(), lldb_private::plugin::dwarf::ManualDWARFIndex::IndexUnit(), lldb_private::plugin::dwarf::DWARFDIE::IsStructUnionOrClass(), IsSubroutine(), lldb_private::plugin::dwarf::DWARFDIE::LookupDeepestBlock(), DWARFASTParserClang::MapDeclDIEToDefDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::MergeBlockAbstractParameters(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseAndAppendGlobalVariable(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseBlocksRecursive(), DWARFASTParserClang::ParseChildMembers(), DWARFASTParserClang::ParseChildParameters(), DWARFASTParserClang::ParseEnum(), DWARFASTParserClang::ParseFunctionFromDWARF(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseImportedModules(), DWARFASTParserClang::ParseObjCMethod(), DWARFASTParserClang::ParseObjCProperty(), DWARFASTParserClang::ParseRustVariantPart(), DWARFASTParserClang::ParseSingleMember(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTemplateDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseType(), DWARFASTParserClang::ParseTypeFromDWARF(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseTypes(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariablesInFunctionContextRecursive(), DWARFASTParserClang::ResolveBlockDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveFunction(), DWARFASTParserClang::ResolveImportedDeclarationDIE(), DWARFASTParserClang::ResolveNamespaceDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveType(), lldb_private::plugin::dwarf::SymbolFileDWARF::ResolveTypeUID(), and DWARFASTParserClang::UpdateSymbolContextScopeForType().

Member Data Documentation

◆ m_cu

DWARFUnit* lldb_private::plugin::dwarf::DWARFBaseDIE::m_cu = nullptr
protected

◆ m_die

DWARFDebugInfoEntry* lldb_private::plugin::dwarf::DWARFBaseDIE::m_die = nullptr
protected

The documentation for this class was generated from the following files: