LLDB mainline
Classes | Public Member Functions | List of all members
lldb_private::plugin::dwarf::DWARFDIE Class Reference

#include <DWARFDIE.h>

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

Classes

class  child_iterator
 

Public Member Functions

bool IsStructUnionOrClass () const
 
bool IsMethod () const
 
const char * GetMangledName () const
 
const char * GetPubname () const
 
void GetName (Stream &s) const
 
void AppendTypeName (Stream &s) const
 
TypeResolveType () const
 
TypeResolveTypeUID (const DWARFDIE &die) const
 
DWARFDIE GetParent () const
 
DWARFDIE GetFirstChild () const
 
DWARFDIE GetSibling () const
 
DWARFDIE GetReferencedDIE (const dw_attr_t attr) const
 
DWARFDIE GetDIE (dw_offset_t die_offset) const
 
DWARFDIE LookupDeepestBlock (lldb::addr_t file_addr) const
 
DWARFDIE GetParentDeclContextDIE () const
 
std::vector< DWARFDIEGetDeclContextDIEs () const
 
std::vector< CompilerContextGetDeclContext () const
 Return this DIE's decl context as it is needed to look up types in Clang modules.
 
std::vector< CompilerContextGetTypeLookupContext () const
 Get a context to a type so it can be looked up.
 
DWARFDIE GetAttributeValueAsReferenceDIE (const dw_attr_t attr) const
 
bool GetDIENamesAndRanges (const char *&name, const char *&mangled, DWARFRangeList &ranges, std::optional< int > &decl_file, std::optional< int > &decl_line, std::optional< int > &decl_column, std::optional< int > &call_file, std::optional< int > &call_line, std::optional< int > &call_column, DWARFExpressionList *frame_base) const
 
llvm::iterator_range< child_iteratorchildren () const
 The range of all the children of this DIE.
 
 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)
 
const char * GetName () const
 
DWARFDebugInfoEntryGetDIE () const
 
- Public Member Functions inherited from lldb_private::plugin::dwarf::DWARFBaseDIE
 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
 
const char * GetTagAsCString () 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
 

Additional Inherited Members

- Public Types inherited from lldb_private::plugin::dwarf::DWARFBaseDIE
enum class  Recurse : bool { no , yes }
 
- Protected Attributes inherited from lldb_private::plugin::dwarf::DWARFBaseDIE
DWARFUnitm_cu = nullptr
 
DWARFDebugInfoEntrym_die = nullptr
 

Detailed Description

Definition at line 18 of file DWARFDIE.h.

Member Function Documentation

◆ AppendTypeName()

void DWARFDIE::AppendTypeName ( Stream s) const

◆ children()

llvm::iterator_range< DWARFDIE::child_iterator > DWARFDIE::children ( ) const

◆ DWARFBaseDIE() [1/5]

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

◆ DWARFBaseDIE() [2/5]

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

Definition at line 41 of file DWARFBaseDIE.h.

◆ DWARFBaseDIE() [3/5]

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

Definition at line 35 of file DWARFBaseDIE.h.

◆ DWARFBaseDIE() [4/5]

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

Definition at line 38 of file DWARFBaseDIE.h.

◆ DWARFBaseDIE() [5/5]

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

Definition at line 32 of file DWARFBaseDIE.h.

◆ GetAttributeValueAsReferenceDIE()

DWARFDIE DWARFDIE::GetAttributeValueAsReferenceDIE ( const dw_attr_t  attr) const

◆ GetDeclContext()

std::vector< lldb_private::CompilerContext > DWARFDIE::GetDeclContext ( ) const

Return this DIE's decl context as it is needed to look up types in Clang modules.

This context will include any modules or functions that the type is declared in so an exact module match can be efficiently made.

Definition at line 434 of file DWARFDIE.cpp.

References GetDeclContextImpl().

Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::FindTypes(), and DWARFASTParserClang::ParseTypeFromClangModule().

◆ GetDeclContextDIEs()

std::vector< DWARFDIE > DWARFDIE::GetDeclContextDIEs ( ) const

◆ GetDIE() [1/2]

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

Definition at line 59 of file DWARFBaseDIE.h.

Referenced by AppendTypeName(), GetDeclContextDIEs(), and GetName().

◆ GetDIE() [2/2]

DWARFDIE DWARFDIE::GetDIE ( dw_offset_t  die_offset) const

Definition at line 119 of file DWARFDIE.cpp.

References lldb_private::plugin::dwarf::DWARFUnit::GetDIE(), lldb_private::plugin::dwarf::DWARFBaseDIE::IsValid(), and lldb_private::plugin::dwarf::DWARFBaseDIE::m_cu.

Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::CompleteType(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::FindFunctions(), lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetAttributes(), lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetAttributeValue(), DWARFASTParserClang::GetCachedClangDeclContextForDIE(), DWARFASTParserClang::GetClangDeclForDIE(), GetDeclContextDIEs(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetDWARFDeclContext(), lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetDWARFDeclContextStatic(), lldb_private::plugin::dwarf::DWARFIndex::GetFullyQualifiedTypeImpl(), lldb_private::plugin::dwarf::DebugNamesDWARFIndex::GetFunctions(), DWARFASTParserClang::GetOwningClangModule(), lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetParentDeclContextDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetSeparateDebugInfo(), lldb_private::plugin::dwarf::SymbolFileDWARF::GetTypeForDIE(), DWARFASTParserClang::LinkDeclContextToDIE(), lldb_private::plugin::dwarf::DWARFIndex::DIERefCallbackImpl::operator()(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseAndAppendGlobalVariable(), DWARFASTParserClang::ParseEnum(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseFunction(), DWARFASTParserClang::ParseFunctionFromDWARF(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTypeFromClangModule(), DWARFASTParserClang::ParseTypeFromDWARF(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIE(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariableDIECached(), lldb_private::plugin::dwarf::SymbolFileDWARF::ParseVariablesForContext(), DWARFASTParserClang::ResolveBlockDIE(), DWARFASTParserClang::ResolveImportedDeclarationDIE(), DWARFASTParserClang::ResolveNamespaceDIE(), and DWARFASTParserClang::UpdateSymbolContextScopeForType().

◆ GetDIENamesAndRanges()

bool DWARFDIE::GetDIENamesAndRanges ( const char *&  name,
const char *&  mangled,
DWARFRangeList ranges,
std::optional< int > &  decl_file,
std::optional< int > &  decl_line,
std::optional< int > &  decl_column,
std::optional< int > &  call_file,
std::optional< int > &  call_line,
std::optional< int > &  call_column,
lldb_private::DWARFExpressionList frame_base 
) const

◆ GetFirstChild()

DWARFDIE DWARFDIE::GetFirstChild ( ) const

◆ GetMangledName()

const char * DWARFDIE::GetMangledName ( ) const

◆ GetName() [1/2]

const char * DWARFBaseDIE::GetName ( ) const

Definition at line 98 of file DWARFBaseDIE.cpp.

Referenced by GetTypeLookupContext().

◆ GetName() [2/2]

void DWARFDIE::GetName ( Stream s) const

◆ GetParent()

DWARFDIE DWARFDIE::GetParent ( ) const

◆ GetParentDeclContextDIE()

DWARFDIE DWARFDIE::GetParentDeclContextDIE ( ) const

◆ GetPubname()

const char * DWARFDIE::GetPubname ( ) const

◆ GetReferencedDIE()

DWARFDIE DWARFDIE::GetReferencedDIE ( const dw_attr_t  attr) const

◆ GetSibling()

DWARFDIE DWARFDIE::GetSibling ( ) const

◆ GetTypeLookupContext()

std::vector< lldb_private::CompilerContext > DWARFDIE::GetTypeLookupContext ( ) const

Get a context to a type so it can be looked up.

This function uses the current DIE to fill in a CompilerContext array that is suitable for type lookup for comparison to a TypeQuery's compiler context (TypeQuery::GetContextRef()). If this DIE represents a named type, it should fill out the compiler context with the type itself as the last entry. The declaration context should be above the type and stop at an appropriate time, like either the translation unit or at a function context. This is designed to allow users to efficiently look for types using a full or partial CompilerContext array.

Definition at line 440 of file DWARFDIE.cpp.

References lldb_private::Builtin, lldb_private::Class, lldb_private::Enum, GetName(), GetParent(), GetPubname(), GetTypeLookupContext(), lldb_private::Namespace, lldb_private::Struct, lldb_private::plugin::dwarf::DWARFBaseDIE::Tag(), lldb_private::Typedef, lldb_private::Union, and lldb_private::Variable.

Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::FindTypes(), and GetTypeLookupContext().

◆ IsMethod()

bool DWARFDIE::IsMethod ( ) const

◆ IsStructUnionOrClass()

bool DWARFDIE::IsStructUnionOrClass ( ) const

Definition at line 495 of file DWARFDIE.cpp.

References lldb_private::plugin::dwarf::DWARFBaseDIE::Tag().

◆ LookupDeepestBlock()

DWARFDIE DWARFDIE::LookupDeepestBlock ( lldb::addr_t  file_addr) const

◆ ResolveType()

lldb_private::Type * DWARFDIE::ResolveType ( ) const

◆ ResolveTypeUID()

lldb_private::Type * DWARFDIE::ResolveTypeUID ( const DWARFDIE die) const

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