9#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_MANUALDWARFINDEX_H
10#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_MANUALDWARFINDEX_H
14#include "llvm/ADT/DenseSet.h"
19class SymbolFileDWARFDwo;
24 llvm::DenseSet<dw_offset_t> units_to_avoid = {},
25 llvm::DenseSet<uint64_t> type_sigs_to_avoid = {})
34 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
37 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
40 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
42 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
44 ConstString class_name,
bool must_be_implementation,
45 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
47 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
49 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
51 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
55 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
57 llvm::function_ref<
bool(
DWARFDIE die)> callback)
override;
101 bool &signature_mismatch);
Represents a generic declaration context in a program.
A uniqued constant string class.
An binary data encoding class.
A class that encapsulates name lookup information.
A class that describes an executable image and its associated object and symbol files.
A stream class that can stream formatted output to a file.
void Dump(Stream &s) override
SymbolFileDWARF * m_dwarf
The DWARF file which we are indexing.
void IndexUnit(DWARFUnit &unit, SymbolFileDWARFDwo *dwp, IndexSet &set)
void GetCompleteObjCClass(ConstString class_name, bool must_be_implementation, llvm::function_ref< bool(DWARFDIE die)> callback) override
static void IndexUnitImpl(DWARFUnit &unit, const lldb::LanguageType cu_language, IndexSet &set)
void GetTypes(ConstString name, llvm::function_ref< bool(DWARFDIE die)> callback) override
bool IsPartial() const
Return true if this manual DWARF index is covering only part of the DWARF.
void GetNamespaces(ConstString name, llvm::function_ref< bool(DWARFDIE die)> callback) override
bool Encode(DataEncoder &encoder) const
Encode this object into a data encoder object.
llvm::DenseSet< dw_offset_t > m_units_to_avoid
Which dwarf units should we skip while building the index.
std::string GetCacheKey()
Get the cache key string for this symbol table.
bool Decode(const DataExtractor &data, lldb::offset_t *offset_ptr, bool &signature_mismatch)
Decode a serialized version of this object from data.
bool LoadFromCache()
Load the symbol table from the index cache.
ManualDWARFIndex(Module &module, SymbolFileDWARF &dwarf, llvm::DenseSet< dw_offset_t > units_to_avoid={}, llvm::DenseSet< uint64_t > type_sigs_to_avoid={})
void GetObjCMethods(ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback) override
void GetFunctions(const Module::LookupInfo &lookup_info, SymbolFileDWARF &dwarf, const CompilerDeclContext &parent_decl_ctx, llvm::function_ref< bool(DWARFDIE die)> callback) override
llvm::DenseSet< uint64_t > m_type_sigs_to_avoid
void SaveToCache()
Save the symbol table data out into a cache.
void GetGlobalVariables(ConstString basename, llvm::function_ref< bool(DWARFDIE die)> callback) override
Finds global variables with the given base name.
LanguageType
Programming language type.
NameToDIE function_basenames
bool Decode(const DataExtractor &data, lldb::offset_t *offset_ptr)
NameToDIE function_selectors
bool operator==(const IndexSet &rhs) const
void Encode(DataEncoder &encoder) const
NameToDIE function_fullnames
NameToDIE function_methods
NameToDIE objc_class_selectors