LLDB  mainline
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
lldb_private::ManualDWARFIndex Class Reference

#include <ManualDWARFIndex.h>

Inheritance diagram for lldb_private::ManualDWARFIndex:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::ManualDWARFIndex:
Collaboration graph
[legend]

Classes

struct  IndexSet
 

Public Member Functions

 ManualDWARFIndex (Module &module, SymbolFileDWARF &dwarf, llvm::DenseSet< dw_offset_t > units_to_avoid={})
 
void Preload () override
 
void GetGlobalVariables (ConstString basename, llvm::function_ref< bool(DWARFDIE die)> callback) override
 Finds global variables with the given base name. More...
 
void GetGlobalVariables (const RegularExpression &regex, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetGlobalVariables (DWARFUnit &unit, llvm::function_ref< bool(DWARFDIE die)> callback) override
 cu must be the skeleton unit if possible, not GetNonSkeletonUnit(). More...
 
void GetObjCMethods (ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetCompleteObjCClass (ConstString class_name, bool must_be_implementation, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetTypes (ConstString name, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetTypes (const DWARFDeclContext &context, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetNamespaces (ConstString name, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetFunctions (ConstString name, SymbolFileDWARF &dwarf, const CompilerDeclContext &parent_decl_ctx, uint32_t name_type_mask, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void GetFunctions (const RegularExpression &regex, llvm::function_ref< bool(DWARFDIE die)> callback) override
 
void Dump (Stream &s) override
 
- Public Member Functions inherited from lldb_private::DWARFIndex
 DWARFIndex (Module &module)
 
virtual ~DWARFIndex ()
 

Private Member Functions

void Index ()
 
void IndexUnit (DWARFUnit &unit, SymbolFileDWARFDwo *dwp, IndexSet &set)
 

Static Private Member Functions

static void IndexUnitImpl (DWARFUnit &unit, const lldb::LanguageType cu_language, IndexSet &set)
 

Private Attributes

SymbolFileDWARFm_dwarf
 The DWARF file which we are indexing. More...
 
llvm::DenseSet< dw_offset_tm_units_to_avoid
 Which dwarf units should we skip while building the index. More...
 
IndexSet m_set
 

Additional Inherited Members

- Protected Member Functions inherited from lldb_private::DWARFIndex
bool ProcessFunctionDIE (llvm::StringRef name, DIERef ref, SymbolFileDWARF &dwarf, const CompilerDeclContext &parent_decl_ctx, uint32_t name_type_mask, llvm::function_ref< bool(DWARFDIE die)> callback)
 Helper function implementing common logic for processing function dies. More...
 
DIERefCallbackImpl DIERefCallback (llvm::function_ref< bool(DWARFDIE die)> callback, llvm::StringRef name={}) const
 
void ReportInvalidDIERef (DIERef ref, llvm::StringRef name) const
 
- Protected Attributes inherited from lldb_private::DWARFIndex
Modulem_module
 

Detailed Description

Definition at line 20 of file ManualDWARFIndex.h.

Constructor & Destructor Documentation

◆ ManualDWARFIndex()

lldb_private::ManualDWARFIndex::ManualDWARFIndex ( Module module,
SymbolFileDWARF dwarf,
llvm::DenseSet< dw_offset_t units_to_avoid = {} 
)
inline

Definition at line 22 of file ManualDWARFIndex.h.

Member Function Documentation

◆ Dump()

void ManualDWARFIndex::Dump ( Stream s)
overridevirtual

◆ GetCompleteObjCClass()

void ManualDWARFIndex::GetCompleteObjCClass ( ConstString  class_name,
bool  must_be_implementation,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ GetFunctions() [1/2]

void ManualDWARFIndex::GetFunctions ( const RegularExpression regex,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ GetFunctions() [2/2]

void ManualDWARFIndex::GetFunctions ( ConstString  name,
SymbolFileDWARF dwarf,
const CompilerDeclContext parent_decl_ctx,
uint32_t  name_type_mask,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ GetGlobalVariables() [1/3]

void ManualDWARFIndex::GetGlobalVariables ( const RegularExpression regex,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ GetGlobalVariables() [2/3]

void ManualDWARFIndex::GetGlobalVariables ( ConstString  basename,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

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.

Implements lldb_private::DWARFIndex.

Definition at line 346 of file ManualDWARFIndex.cpp.

References lldb_private::ConstString::GetStringRef().

◆ GetGlobalVariables() [3/3]

void ManualDWARFIndex::GetGlobalVariables ( DWARFUnit cu,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

cu must be the skeleton unit if possible, not GetNonSkeletonUnit().

Implements lldb_private::DWARFIndex.

Definition at line 360 of file ManualDWARFIndex.cpp.

References SymbolFileDWARF::GetDwoNum(), DWARFUnit::GetSymbolFileDWARF(), and lldbassert.

◆ GetNamespaces()

void ManualDWARFIndex::GetNamespaces ( ConstString  name,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ GetObjCMethods()

void ManualDWARFIndex::GetObjCMethods ( ConstString  class_name,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ GetTypes() [1/2]

void ManualDWARFIndex::GetTypes ( const DWARFDeclContext context,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

Implements lldb_private::DWARFIndex.

Definition at line 388 of file ManualDWARFIndex.cpp.

◆ GetTypes() [2/2]

void ManualDWARFIndex::GetTypes ( ConstString  name,
llvm::function_ref< bool(DWARFDIE die)>  callback 
)
overridevirtual

◆ Index()

void ManualDWARFIndex::Index ( )
private

◆ IndexUnit()

void ManualDWARFIndex::IndexUnit ( DWARFUnit unit,
SymbolFileDWARFDwo dwp,
IndexSet set 
)
private

◆ IndexUnitImpl()

void ManualDWARFIndex::IndexUnitImpl ( DWARFUnit unit,
const lldb::LanguageType  cu_language,
IndexSet set 
)
staticprivate

◆ Preload()

void lldb_private::ManualDWARFIndex::Preload ( )
inlineoverridevirtual

Implements lldb_private::DWARFIndex.

Definition at line 27 of file ManualDWARFIndex.h.

References Index().

Referenced by lldb_private::DebugNamesDWARFIndex::Preload().

Member Data Documentation

◆ m_dwarf

SymbolFileDWARF* lldb_private::ManualDWARFIndex::m_dwarf
private

The DWARF file which we are indexing.

Set to nullptr after the index is built.

Definition at line 78 of file ManualDWARFIndex.h.

◆ m_set

IndexSet lldb_private::ManualDWARFIndex::m_set
private

Definition at line 82 of file ManualDWARFIndex.h.

◆ m_units_to_avoid

llvm::DenseSet<dw_offset_t> lldb_private::ManualDWARFIndex::m_units_to_avoid
private

Which dwarf units should we skip while building the index.

Definition at line 80 of file ManualDWARFIndex.h.


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