LLDB mainline
|
#include <DWARFIndex.h>
Classes | |
class | DIERefCallbackImpl |
Public Member Functions | |
DWARFIndex (Module &module) | |
virtual | ~DWARFIndex () |
virtual void | Preload ()=0 |
virtual void | GetGlobalVariables (ConstString basename, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
Finds global variables with the given base name. | |
virtual void | GetGlobalVariables (const RegularExpression ®ex, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetGlobalVariables (DWARFUnit &cu, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
cu must be the skeleton unit if possible, not GetNonSkeletonUnit(). | |
virtual void | GetObjCMethods (ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetCompleteObjCClass (ConstString class_name, bool must_be_implementation, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetTypes (ConstString name, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetTypes (const DWARFDeclContext &context, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetFullyQualifiedType (const DWARFDeclContext &context, llvm::function_ref< bool(DWARFDIE die)> callback) |
Finds all DIEs whose fully qualified name matches context . | |
virtual void | GetNamespaces (ConstString name, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetFunctions (const Module::LookupInfo &lookup_info, SymbolFileDWARF &dwarf, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | GetFunctions (const RegularExpression ®ex, llvm::function_ref< bool(DWARFDIE die)> callback)=0 |
virtual void | Dump (Stream &s)=0 |
StatsDuration::Duration | GetIndexTime () |
Protected Member Functions | |
bool | ProcessFunctionDIE (const Module::LookupInfo &lookup_info, DWARFDIE die, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< bool(DWARFDIE die)> callback) |
Helper function implementing common logic for processing function dies. | |
DIERefCallbackImpl | DIERefCallback (llvm::function_ref< bool(DWARFDIE die)> callback, llvm::StringRef name={}) const |
void | ReportInvalidDIERef (DIERef ref, llvm::StringRef name) const |
bool | GetFullyQualifiedTypeImpl (const DWARFDeclContext &context, DWARFDIE die, llvm::function_ref< bool(DWARFDIE die)> callback) |
Implementation of GetFullyQualifiedType to check a single entry, shareable with derived classes. | |
Protected Attributes | |
Module & | m_module |
StatsDuration | m_index_time |
Definition at line 25 of file DWARFIndex.h.
|
inline |
Definition at line 27 of file DWARFIndex.h.
|
virtualdefault |
|
inlineprotected |
Definition at line 106 of file DWARFIndex.h.
Referenced by lldb_private::plugin::dwarf::AppleDWARFIndex::GetCompleteObjCClass(), lldb_private::plugin::dwarf::ManualDWARFIndex::GetCompleteObjCClass(), lldb_private::plugin::dwarf::ManualDWARFIndex::GetFunctions(), lldb_private::plugin::dwarf::AppleDWARFIndex::GetGlobalVariables(), lldb_private::plugin::dwarf::ManualDWARFIndex::GetGlobalVariables(), lldb_private::plugin::dwarf::ManualDWARFIndex::GetNamespaces(), lldb_private::plugin::dwarf::ManualDWARFIndex::GetObjCMethods(), lldb_private::plugin::dwarf::ManualDWARFIndex::GetTypes(), and lldb_private::plugin::dwarf::AppleDWARFIndex::SearchFor().
|
pure virtual |
|
pure virtual |
|
virtual |
Finds all DIEs whose fully qualified name matches context
.
A base implementation is provided, and it uses the entire CU to check the DIE parent hierarchy. Specializations should override this if they are able to provide a faster implementation.
Reimplemented in lldb_private::plugin::dwarf::DebugNamesDWARFIndex.
Definition at line 113 of file DWARFIndex.cpp.
References GetFullyQualifiedTypeImpl(), and GetTypes().
|
protected |
Implementation of GetFullyQualifiedType
to check a single entry, shareable with derived classes.
Definition at line 121 of file DWARFIndex.cpp.
References lldb_private::plugin::dwarf::DWARFDIE::GetDWARFDeclContext().
Referenced by GetFullyQualifiedType(), and lldb_private::plugin::dwarf::DebugNamesDWARFIndex::GetFullyQualifiedType().
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
Finds global variables with the given base name.
Any additional filtering (e.g., to only retrieve variables from a given context) should be done by the consumer.
Implemented in lldb_private::plugin::dwarf::AppleDWARFIndex, lldb_private::plugin::dwarf::DebugNamesDWARFIndex, and lldb_private::plugin::dwarf::ManualDWARFIndex.
|
pure virtual |
cu must be the skeleton unit if possible, not GetNonSkeletonUnit().
Implemented in lldb_private::plugin::dwarf::AppleDWARFIndex, lldb_private::plugin::dwarf::DebugNamesDWARFIndex, and lldb_private::plugin::dwarf::ManualDWARFIndex.
|
inline |
Definition at line 77 of file DWARFIndex.h.
References m_index_time.
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
protected |
Helper function implementing common logic for processing function dies.
If the function given by "die" matches search criteria given by "parent_decl_ctx" and "name_type_mask", it calls the callback with the given die.
Definition at line 26 of file DWARFIndex.cpp.
References lldb_private::plugin::dwarf::SymbolFileDWARF::ConstructFunctionDemangledName(), lldb_private::plugin::dwarf::SymbolFileDWARF::DIEInDeclContext(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetDWARF(), lldb_private::Module::LookupInfo::GetLanguageType(), lldb_private::Module::LookupInfo::GetLookupName(), lldb_private::plugin::dwarf::DWARFDIE::GetMangledName(), lldb_private::plugin::dwarf::DWARFDIE::GetName(), lldb_private::Module::LookupInfo::GetNameTypeMask(), lldb_private::ConstString::GetStringRef(), lldb_private::plugin::dwarf::DWARFDIE::IsMethod(), lldb_private::ObjCLanguage::IsPossibleObjCMethodName(), lldb_private::CompilerDeclContext::IsValid(), and lldb_private::Module::LookupInfo::NameMatchesLookupInfo().
Referenced by lldb_private::plugin::dwarf::AppleDWARFIndex::GetFunctions(), and lldb_private::plugin::dwarf::DebugNamesDWARFIndex::GetFunctions().
|
protected |
Definition at line 106 of file DWARFIndex.cpp.
References lldb_private::plugin::dwarf::DIERef::die_offset(), m_module, and lldb_private::Module::ReportErrorIfModifyDetected().
Referenced by lldb_private::plugin::dwarf::AppleDWARFIndex::GetFunctions().
|
protected |
Definition at line 81 of file DWARFIndex.h.
Referenced by GetIndexTime(), and lldb_private::plugin::dwarf::ManualDWARFIndex::Index().
|
protected |
Definition at line 80 of file DWARFIndex.h.
Referenced by lldb_private::plugin::dwarf::ManualDWARFIndex::Dump(), lldb_private::plugin::dwarf::DebugNamesDWARFIndex::GetDIE(), lldb_private::plugin::dwarf::AppleDWARFIndex::GetTypes(), lldb_private::plugin::dwarf::ManualDWARFIndex::Index(), lldb_private::plugin::dwarf::ManualDWARFIndex::IndexUnit(), and ReportInvalidDIERef().