9#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFINDEX_H
10#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFINDEX_H
15#include "llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h"
51 ConstString class_name,
bool must_be_implementation,
116 llvm::StringRef name);
119 operator()(
const llvm::AppleAcceleratorTable::Entry &entry)
const;
129 llvm::StringRef name = {})
const {
130 return DIERefCallbackImpl(*
this, callback, name);
138 const DWARFDeclContext &context, DWARFDIE die,
Represents a generic declaration context in a program.
A uniqued constant string class.
A class that encapsulates name lookup information.
A class that describes an executable image and its associated object and symbol files.
std::chrono::duration< double > Duration
A stream class that can stream formatted output to a file.
A class that contains all state required for type lookups.
Identifies a DWARF debug info entry within a given Module.
SymbolFileDWARF & m_dwarf
DIERefCallbackImpl(const DWARFIndex &index, llvm::function_ref< IterationAction(DWARFDIE die)> callback, llvm::StringRef name)
const llvm::StringRef m_name
IterationAction operator()(DIERef ref) const
const llvm::function_ref< IterationAction(DWARFDIE die)> m_callback
const DWARFIndex & m_index
virtual void GetFunctions(const RegularExpression ®ex, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
IterationAction GetFullyQualifiedTypeImpl(const DWARFDeclContext &context, DWARFDIE die, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
Implementation of GetFullyQualifiedType to check a single entry, shareable with derived classes.
virtual void GetFullyQualifiedType(const DWARFDeclContext &context, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
Finds all DIEs whose fully qualified name matches context.
virtual void GetTypesWithQuery(TypeQuery &query, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
Get type DIEs meeting requires of query.
StatsDuration::Duration GetIndexTime()
StatsDuration m_index_time
virtual void GetCompleteObjCClass(ConstString class_name, bool must_be_implementation, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
virtual void GetNamespaces(ConstString name, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
virtual void GetGlobalVariables(ConstString basename, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
Finds global variables with the given base name.
virtual void GetObjCMethods(ConstString class_name, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
virtual void GetGlobalVariables(DWARFUnit &cu, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
cu must be the skeleton unit if possible, not GetNonSkeletonUnit().
virtual void Dump(Stream &s)=0
IterationAction ProcessFunctionDIE(const Module::LookupInfo &lookup_info, DWARFDIE die, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
Helper function implementing common logic for processing function dies.
DIERefCallbackImpl DIERefCallback(llvm::function_ref< IterationAction(DWARFDIE die)> callback, llvm::StringRef name={}) const
virtual void GetGlobalVariables(const RegularExpression ®ex, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
void ReportInvalidDIERef(DIERef ref, llvm::StringRef name) const
virtual void GetTypes(const DWARFDeclContext &context, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
virtual void GetNamespacesWithParents(ConstString name, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
Get namespace DIEs whose base name match.
virtual void GetTypes(ConstString name, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
DWARFIndex(Module &module)
virtual void GetFunctions(const Module::LookupInfo &lookup_info, SymbolFileDWARF &dwarf, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< IterationAction(DWARFDIE die)> callback)=0
IterationAction ProcessTypeDIEMatchQuery(TypeQuery &query, DWARFDIE die, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
Check if the type die can meet the requirements of query.
IterationAction ProcessNamespaceDieMatchParents(const CompilerDeclContext &parent_decl_ctx, DWARFDIE die, llvm::function_ref< IterationAction(DWARFDIE die)> callback)
IterationAction
Useful for callbacks whose return type indicates whether to continue iteration or short-circuit.