#include "Plugins/SymbolFile/DWARF/AppleDWARFIndex.h"
#include "Plugins/SymbolFile/DWARF/DWARFDeclContext.h"
#include "Plugins/SymbolFile/DWARF/DWARFUnit.h"
#include "Plugins/SymbolFile/DWARF/LogChannelDWARF.h"
#include "lldb/Core/Module.h"
#include "lldb/Symbol/Function.h"
#include "llvm/Support/DJB.h"
usingnamespacelldb_private;
usingnamespacelldb;
usingnamespacelldb_private::dwarf;
usingnamespacelldb_private::plugin::dwarf;
std::unique_ptr<AppleDWARFIndex> AppleDWARFIndex::Create(
Module &module, DWARFDataExtractor apple_names,
DWARFDataExtractor apple_namespaces, DWARFDataExtractor apple_types,
DWARFDataExtractor apple_objc, DWARFDataExtractor debug_str) { … }
static bool IsClassOrStruct(dw_tag_t tag) { … }
static bool
EntryHasMatchingQualhash(const llvm::AppleAcceleratorTable::Entry &entry,
uint32_t expected_hash) { … }
static bool EntryHasMatchingTag(const llvm::AppleAcceleratorTable::Entry &entry,
dw_tag_t expected_tag) { … }
static bool
HasImplementationFlag(const llvm::AppleAcceleratorTable::Entry &entry) { … }
void AppleDWARFIndex::SearchFor(const llvm::AppleAcceleratorTable &table,
llvm::StringRef name,
llvm::function_ref<bool(DWARFDIE die)> callback,
std::optional<dw_tag_t> search_for_tag,
std::optional<uint32_t> search_for_qualhash) { … }
void AppleDWARFIndex::GetGlobalVariables(
ConstString basename, llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetGlobalVariables(
const RegularExpression ®ex,
llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetGlobalVariables(
DWARFUnit &cu, llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetObjCMethods(
ConstString class_name, llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetCompleteObjCClass(
ConstString class_name, bool must_be_implementation,
llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetTypes(
ConstString name, llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetTypes(
const DWARFDeclContext &context,
llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetNamespaces(
ConstString name, llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetFunctions(
const Module::LookupInfo &lookup_info, SymbolFileDWARF &dwarf,
const CompilerDeclContext &parent_decl_ctx,
llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::GetFunctions(
const RegularExpression ®ex,
llvm::function_ref<bool(DWARFDIE die)> callback) { … }
void AppleDWARFIndex::Dump(Stream &s) { … }