diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h | 46 |
1 files changed, 39 insertions, 7 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h index 3eb87fc96da..13445eb4a15 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h @@ -38,7 +38,8 @@ // Project includes #include "DWARFDataExtractor.h" #include "DWARFDefines.h" -#include "DWARFIndex.h" +#include "HashedNameToDIE.h" +#include "NameToDIE.h" #include "UniqueDWARFASTType.h" //---------------------------------------------------------------------- @@ -312,10 +313,6 @@ public: // the method returns a pointer to the base compile unit. virtual DWARFUnit *GetBaseCompileUnit(); - static bool - DIEInDeclContext(const lldb_private::CompilerDeclContext *parent_decl_ctx, - const DWARFDIE &die); - protected: typedef llvm::DenseMap<const DWARFDebugInfoEntry *, lldb_private::Type *> DIEToTypePtr; @@ -343,6 +340,10 @@ protected: bool DeclContextMatchesThisSymbolFile( const lldb_private::CompilerDeclContext *decl_ctx); + bool + DIEInDeclContext(const lldb_private::CompilerDeclContext *parent_decl_ctx, + const DWARFDIE &die); + virtual DWARFUnit * GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit); @@ -389,6 +390,19 @@ protected: bool ResolveFunction(const DWARFDIE &die, bool include_inlines, lldb_private::SymbolContextList &sc_list); + void FindFunctions(const lldb_private::ConstString &name, + const NameToDIE &name_to_die, bool include_inlines, + lldb_private::SymbolContextList &sc_list); + + void FindFunctions(const lldb_private::RegularExpression ®ex, + const NameToDIE &name_to_die, bool include_inlines, + lldb_private::SymbolContextList &sc_list); + + void FindFunctions(const lldb_private::RegularExpression ®ex, + const DWARFMappedHash::MemoryTable &memory_table, + bool include_inlines, + lldb_private::SymbolContextList &sc_list); + virtual lldb::TypeSP FindDefinitionTypeForDWARFDeclContext(const DWARFDeclContext &die_decl_ctx); @@ -399,9 +413,14 @@ protected: lldb_private::Symbol * GetObjCClassSymbol(const lldb_private::ConstString &objc_class_name); + void ParseFunctions(const DIEArray &die_offsets, bool include_inlines, + lldb_private::SymbolContextList &sc_list); + lldb::TypeSP GetTypeForDIE(const DWARFDIE &die, bool resolve_function_context = false); + void Index(); + void DumpIndexes(); void SetDebugMapModule(const lldb::ModuleSP &module_sp) { @@ -487,6 +506,10 @@ protected: std::unique_ptr<DWARFDebugAbbrev> m_abbr; std::unique_ptr<DWARFDebugInfo> m_info; std::unique_ptr<DWARFDebugLine> m_line; + std::unique_ptr<DWARFMappedHash::MemoryTable> m_apple_names_ap; + std::unique_ptr<DWARFMappedHash::MemoryTable> m_apple_types_ap; + std::unique_ptr<DWARFMappedHash::MemoryTable> m_apple_namespaces_ap; + std::unique_ptr<DWARFMappedHash::MemoryTable> m_apple_objc_ap; std::unique_ptr<GlobalVariableMap> m_global_aranges_ap; typedef std::unordered_map<lldb::offset_t, lldb_private::DebugMacrosSP> @@ -494,8 +517,17 @@ protected: DebugMacrosMap m_debug_macros_map; ExternalTypeModuleMap m_external_type_modules; - std::unique_ptr<lldb_private::DWARFIndex> m_index; - bool m_fetched_external_modules : 1; + NameToDIE m_function_basename_index; // All concrete functions + NameToDIE m_function_fullname_index; // All concrete functions + NameToDIE m_function_method_index; // All inlined functions + NameToDIE + m_function_selector_index; // All method names for functions of classes + NameToDIE m_objc_class_selectors_index; // Given a class name, find all + // selectors for the class + NameToDIE m_global_index; // Global and static variables + NameToDIE m_type_index; // All type DIE offsets + NameToDIE m_namespace_index; // All type DIE offsets + bool m_indexed : 1, m_using_apple_tables : 1, m_fetched_external_modules : 1; lldb_private::LazyBool m_supports_DW_AT_APPLE_objc_complete_type; typedef std::shared_ptr<std::set<DIERef>> DIERefSetSP; |