LLDB mainline
|
#include <DWARFDIE.h>
Classes | |
class | child_iterator |
Public Member Functions | |
bool | IsStructUnionOrClass () const |
bool | IsMethod () const |
const char * | GetMangledName () const |
const char * | GetPubname () const |
void | GetName (lldb_private::Stream &s) const |
void | AppendTypeName (lldb_private::Stream &s) const |
lldb_private::Type * | ResolveType () const |
lldb_private::Type * | ResolveTypeUID (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< DWARFDIE > | GetDeclContextDIEs () const |
void | GetDeclContext (llvm::SmallVectorImpl< lldb_private::CompilerContext > &context) const |
Return this DIE's decl context as it is needed to look up types in Clang's -gmodules debug info format. | |
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, lldb_private::DWARFExpressionList *frame_base) const |
llvm::iterator_range< child_iterator > | children () 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 |
DWARFDebugInfoEntry * | GetDIE () const |
![]() | |
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 |
SymbolFileDWARF * | GetDWARF () const |
DWARFUnit * | GetCU () const |
DWARFDebugInfoEntry * | GetDIE () const |
std::optional< DIERef > | GetDIERef () const |
void | Set (DWARFUnit *cu, DWARFDebugInfoEntry *die) |
void | Clear () |
const lldb_private::DWARFDataExtractor & | GetData () 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 | |
![]() | |
enum class | Recurse : bool { no , yes } |
![]() | |
DWARFUnit * | m_cu = nullptr |
DWARFDebugInfoEntry * | m_die = nullptr |
Definition at line 16 of file DWARFDIE.h.
void DWARFDIE::AppendTypeName | ( | lldb_private::Stream & | s | ) | const |
Definition at line 235 of file DWARFDIE.cpp.
References GetAttributeValueAsReferenceDIE(), DWARFBaseDIE::GetAttributeValueAsUnsigned(), GetDIE(), GetPubname(), DWARFBaseDIE::IsValid(), lldb_private::Stream::Printf(), lldb_private::Stream::PutChar(), lldb_private::Stream::PutCString(), and DWARFBaseDIE::Tag().
llvm::iterator_range< DWARFDIE::child_iterator > DWARFDIE::children | ( | ) | const |
The range of all the children of this DIE.
Definition at line 453 of file DWARFDIE.cpp.
Referenced by SymbolFileDWARF::ClassOrStructIsVirtual(), SymbolFileDWARF::CollectCallEdges(), CollectCallSiteParameters(), DWARFASTParserClang::EnsureAllDIEsInDeclContextHaveBeenParsed(), FindAnyChildWithAbstractOrigin(), SymbolFileDWARF::FindBlockContainingSpecification(), SymbolFileDWARF::GetTypes(), LookupDeepestBlock(), DWARFASTParser::ParseChildArrayInfo(), DWARFASTParserClang::ParseChildEnumerators(), DWARFASTParserClang::ParseChildMembers(), DWARFASTParserClang::ParseChildParameters(), SymbolFileDWARF::ParseImportedModules(), DWARFASTParserClang::ParseTemplateDIE(), DWARFASTParserClang::ParseTemplateParameterInfos(), and DWARFASTParserClang::ParseTypeModifier().
|
default |
|
inline |
Definition at line 39 of file DWARFBaseDIE.h.
|
inline |
Definition at line 33 of file DWARFBaseDIE.h.
|
inline |
Definition at line 36 of file DWARFBaseDIE.h.
|
inline |
Definition at line 30 of file DWARFBaseDIE.h.
Definition at line 126 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetAttributeValue(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_die, and DWARFFormValue::Reference().
Referenced by AppendTypeName(), DWARFASTParserClang::GetClangDeclForDIE(), and DWARFASTParserClang::ResolveImportedDeclarationDIE().
void DWARFDIE::GetDeclContext | ( | llvm::SmallVectorImpl< lldb_private::CompilerContext > & | context | ) | const |
Return this DIE's decl context as it is needed to look up types in Clang's -gmodules debug info format.
Definition at line 375 of file DWARFDIE.cpp.
References GetDeclContext(), GetName(), GetParent(), GetPubname(), and DWARFBaseDIE::Tag().
Referenced by GetDeclContext(), and DWARFASTParserClang::ParseTypeFromClangModule().
std::vector< DWARFDIE > DWARFDIE::GetDeclContextDIEs | ( | ) | const |
Definition at line 361 of file DWARFDIE.cpp.
References GetDIE(), GetParentDeclContextDIE(), and DWARFBaseDIE::IsValid().
Referenced by SymbolFileDWARF::DIEDeclContextsMatch().
|
inline |
Definition at line 57 of file DWARFBaseDIE.h.
Referenced by AppendTypeName(), GetDeclContextDIEs(), and GetName().
DWARFDIE DWARFDIE::GetDIE | ( | dw_offset_t | die_offset | ) | const |
Definition at line 118 of file DWARFDIE.cpp.
References DWARFUnit::GetDIE(), DWARFBaseDIE::IsValid(), and DWARFBaseDIE::m_cu.
Referenced by SymbolFileDWARF::CompleteType(), DWARFASTParserClang::CopyUniqueClassMethodTypes(), SymbolFileDWARF::FindCompleteObjCDefinitionTypeForDIE(), SymbolFileDWARF::FindFunctions(), DWARFDebugInfoEntry::GetAttributes(), DWARFDebugInfoEntry::GetAttributeValue(), DWARFASTParserClang::GetCachedClangDeclContextForDIE(), DWARFASTParserClang::GetClangDeclForDIE(), GetDeclContextDIEs(), SymbolFileDWARF::GetDWARFDeclContext(), DWARFDebugInfoEntry::GetDWARFDeclContextStatic(), lldb_private::DebugNamesDWARFIndex::GetFunctions(), DWARFASTParserClang::GetOwningClangModule(), DWARFDebugInfoEntry::GetParentDeclContextDIE(), SymbolFileDWARF::GetTypeForDIE(), DWARFASTParserClang::LinkDeclContextToDIE(), lldb_private::DWARFIndex::DIERefCallbackImpl::operator()(), SymbolFileDWARF::ParseAndAppendGlobalVariable(), DWARFASTParserClang::ParseEnum(), SymbolFileDWARF::ParseFunction(), DWARFASTParserClang::ParseFunctionFromDWARF(), DWARFASTParserClang::ParseStructureLikeDIE(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTypeFromClangModule(), DWARFASTParserClang::ParseTypeFromDWARF(), DWARFASTParserClang::ParseTypeModifier(), SymbolFileDWARF::ParseVariableDIE(), SymbolFileDWARF::ParseVariableDIECached(), SymbolFileDWARF::ParseVariablesForContext(), DWARFASTParserClang::ResolveBlockDIE(), DWARFASTParserClang::ResolveImportedDeclarationDIE(), DWARFASTParserClang::ResolveNamespaceDIE(), and DWARFASTParserClang::UpdateSymbolContextScopeForType().
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 |
Definition at line 439 of file DWARFDIE.cpp.
References DWARFBaseDIE::GetCU(), DWARFDebugInfoEntry::GetDIENamesAndRanges(), DWARFBaseDIE::IsValid(), and DWARFBaseDIE::m_die.
Referenced by SymbolFileDWARF::ParseBlocksRecursive(), and DWARFASTParserClang::ParseFunctionFromDWARF().
DWARFDIE DWARFDIE::GetFirstChild | ( | ) | const |
Definition at line 94 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetFirstChild(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_cu, and DWARFBaseDIE::m_die.
Referenced by DWARFASTParserClang::CopyUniqueClassMethodTypes(), lldb_private::ManualDWARFIndex::IndexUnit(), SymbolFileDWARF::MergeBlockAbstractParameters(), SymbolFileDWARF::ParseBlocksRecursive(), SymbolFileDWARF::ParseTypes(), and SymbolFileDWARF::ParseVariablesInFunctionContextRecursive().
const char * DWARFDIE::GetMangledName | ( | ) | const |
Definition at line 198 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetMangledName(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_cu, and DWARFBaseDIE::m_die.
Referenced by DWARFASTParserClang::CopyUniqueClassMethodTypes(), SymbolFileDWARF::GetMangledNamesForFunction(), and lldb_private::DWARFIndex::ProcessFunctionDIE().
const char * DWARFBaseDIE::GetName | ( | ) | const |
Definition at line 96 of file DWARFBaseDIE.cpp.
Referenced by GetDeclContext().
void DWARFDIE::GetName | ( | lldb_private::Stream & | s | ) | const |
Definition at line 217 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetAttributeValueAsString(), DWARFBaseDIE::GetCU(), GetDIE(), DWARFBaseDIE::IsValid(), and lldb_private::Stream::PutCString().
Referenced by SymbolFileDWARF::DIEDeclContextsMatch(), UniqueDWARFASTTypeList::Find(), SymbolFileDWARF::FindDefinitionTypeForDWARFDeclContext(), DWARFASTParserClang::GetClangDeclForDIE(), GetContainingClangModule(), DWARFASTParserClang::GetCPlusPlusQualifiedName(), DWARFASTParserClang::GetDIEClassTemplateParams(), DWARFASTParserClang::ParseSubroutine(), DWARFASTParserClang::ParseTemplateDIE(), DWARFASTParserClang::ParseTypeFromDWARF(), DWARFASTParserClang::ParseTypeModifier(), lldb_private::DWARFIndex::ProcessFunctionDIE(), DWARFASTParserClang::ResolveNamespaceDIE(), SymbolFileDWARF::ResolveType(), and SymbolFileDWARF::ResolveTypeUID().
DWARFDIE DWARFDIE::GetParent | ( | ) | const |
Definition at line 86 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetParent(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_cu, and DWARFBaseDIE::m_die.
Referenced by SymbolFileDWARF::DIEInDeclContext(), UniqueDWARFASTTypeList::Find(), FindFirstChildWithAbstractOrigin(), GetContainingClangModuleDIE(), GetContainingFunctionWithAbstractOrigin(), GetDeclContext(), SymbolFileDWARF::GetDeclContextDIEContainingDIE(), DWARFASTParserClang::GetOwningClangModule(), DWARFDebugInfoEntry::GetParentDeclContextDIE(), SymbolFileDWARF::GetParentSymbolContextDIE(), SymbolFileDWARF::GetTypeForDIE(), IsClangModuleFwdDecl(), DWARFASTParserClang::ParseFunctionFromDWARF(), SymbolFileDWARF::ParseImportedModules(), and SymbolFileDWARF::ResolveFunction().
DWARFDIE DWARFDIE::GetParentDeclContextDIE | ( | ) | const |
Definition at line 419 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetParentDeclContextDIE(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_cu, and DWARFBaseDIE::m_die.
Referenced by DWARFASTParserClang::GetCPlusPlusQualifiedName(), GetDeclContextDIEs(), and DWARFDebugInfoEntry::GetParentDeclContextDIE().
const char * DWARFDIE::GetPubname | ( | ) | const |
Definition at line 205 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetPubname(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_cu, and DWARFBaseDIE::m_die.
Referenced by AppendTypeName(), SymbolFileDWARF::CollectCallEdges(), and GetDeclContext().
Definition at line 110 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetAttributeValueAsReference(), DWARFBaseDIE::GetCU(), DWARFBaseDIE::IsValid(), and DWARFBaseDIE::m_die.
Referenced by SymbolFileDWARF::FindBlockContainingSpecification(), DWARFASTParserClang::GetClangDeclForDIE(), SymbolFileDWARF::GetDeclContextDIEContainingDIE(), SymbolFileDWARF::MergeBlockAbstractParameters(), DWARFASTParser::ParseChildArrayInfo(), SymbolFileDWARF::ParseImportedModules(), DWARFASTParserClang::ParseTypeModifier(), and SymbolFileDWARF::ParseVariableDIECached().
DWARFDIE DWARFDIE::GetSibling | ( | ) | const |
Definition at line 102 of file DWARFDIE.cpp.
References DWARFDebugInfoEntry::GetSibling(), DWARFBaseDIE::IsValid(), DWARFBaseDIE::m_cu, and DWARFBaseDIE::m_die.
Referenced by SymbolFileDWARF::MergeBlockAbstractParameters(), DWARFDIE::child_iterator::operator++(), SymbolFileDWARF::ParseBlocksRecursive(), SymbolFileDWARF::ParseTypes(), and SymbolFileDWARF::ParseVariablesInFunctionContextRecursive().
bool DWARFDIE::IsMethod | ( | ) | const |
Definition at line 432 of file DWARFDIE.cpp.
Referenced by lldb_private::ManualDWARFIndex::IndexUnitImpl(), and lldb_private::DWARFIndex::ProcessFunctionDIE().
bool DWARFDIE::IsStructUnionOrClass | ( | ) | const |
Definition at line 426 of file DWARFDIE.cpp.
References DWARFBaseDIE::Tag().
DWARFDIE DWARFDIE::LookupDeepestBlock | ( | lldb::addr_t | file_addr | ) | const |
Definition at line 139 of file DWARFDIE.cpp.
References children(), lldb_private::RangeVector< B, S, N >::FindEntryThatContains(), DWARFDebugInfoEntry::GetAttributeAddressRanges(), DWARFBaseDIE::IsValid(), LookupDeepestBlock(), DWARFBaseDIE::m_cu, DWARFBaseDIE::m_die, and DWARFBaseDIE::Tag().
Referenced by LookupDeepestBlock(), and SymbolFileDWARF::ResolveFunctionAndBlock().
lldb_private::Type * DWARFDIE::ResolveType | ( | ) | const |
Definition at line 348 of file DWARFDIE.cpp.
References DWARFBaseDIE::GetDWARF(), DWARFBaseDIE::IsValid(), and SymbolFileDWARF::ResolveType().
Referenced by DWARFASTParserClang::CompleteRecordType().
lldb_private::Type * DWARFDIE::ResolveTypeUID | ( | const DWARFDIE & | die | ) | const |
Definition at line 355 of file DWARFDIE.cpp.
References DWARFBaseDIE::GetDWARF().
Referenced by DWARFASTParserClang::ParseChildParameters(), DWARFASTParserClang::ParseInheritance(), DWARFASTParserClang::ParseObjCProperty(), DWARFASTParserClang::ParseSingleMember(), and DWARFASTParserClang::ParseTemplateDIE().