summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-09-01 23:16:13 +0000
committerGreg Clayton <gclayton@apple.com>2011-09-01 23:16:13 +0000
commitf9eec20bd3a6b1f65edde8694c99d358f11c0129 (patch)
tree3cea53a3679fc4b5a9c472a0ddbc64cea6c77965 /lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
parent5d7a6f31f765ece4ac1f4d5cb9cffdb924751273 (diff)
downloadbcm5719-llvm-f9eec20bd3a6b1f65edde8694c99d358f11c0129.tar.gz
bcm5719-llvm-f9eec20bd3a6b1f65edde8694c99d358f11c0129.zip
Added support for accessing and loading our new .debug_names and .debug_types
DWARF accelerator table sections to the DWARF parser. These sections are similar to the .debug_pubnames and .debug_pubtypes, but they are designed to be hash tables that are saved to disc in a way that the sections can just be loaded into memory and used without any work on the debugger side. The .debug_pubnames and .debug_pubtypes sections are not ordered, contain a copy of the name in the section itself which makes these sections quite large, they only include publicly exported names (so no static functions, no types defined inside functions), many compilers put different information in them making them very unreliable so most debugger ignore these sections and parse the DWARF on their own. The tables must also be parsed and sorted in order to be used effectively. The new sections can be quickly loaded and very efficiently be used to do name to DIE lookups with very little up front work. The format of these new sections will be changing while we work out the bugs, but we hope to have really fast name to DIE lookups soon. llvm-svn: 138979
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
index 8f6ef045c70..364d0991945 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
@@ -162,6 +162,8 @@ public:
const lldb_private::DataExtractor& get_debug_loc_data();
const lldb_private::DataExtractor& get_debug_ranges_data();
const lldb_private::DataExtractor& get_debug_str_data();
+ const lldb_private::DataExtractor& get_debug_names_data();
+ const lldb_private::DataExtractor& get_debug_types_data();
DWARFDebugAbbrev* DebugAbbrev();
const DWARFDebugAbbrev* DebugAbbrev() const;
@@ -229,7 +231,9 @@ protected:
flagsGotDebugPubNamesData = (1 << 7),
flagsGotDebugPubTypesData = (1 << 8),
flagsGotDebugRangesData = (1 << 9),
- flagsGotDebugStrData = (1 << 10)
+ flagsGotDebugStrData = (1 << 10),
+ flagsGotDebugNamesData = (1 << 11),
+ flagsGotDebugTypesData = (1 << 12),
};
DISALLOW_COPY_AND_ASSIGN (SymbolFileDWARF);
@@ -371,6 +375,8 @@ protected:
lldb_private::DataExtractor m_data_debug_loc;
lldb_private::DataExtractor m_data_debug_ranges;
lldb_private::DataExtractor m_data_debug_str;
+ lldb_private::DataExtractor m_data_debug_names;
+ lldb_private::DataExtractor m_data_debug_types;
// The auto_ptr items below are generated on demand if and when someone accesses
// them through a non const version of this class.
OpenPOWER on IntegriCloud