diff options
| author | Greg Clayton <gclayton@apple.com> | 2011-09-01 23:16:13 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2011-09-01 23:16:13 +0000 |
| commit | f9eec20bd3a6b1f65edde8694c99d358f11c0129 (patch) | |
| tree | 3cea53a3679fc4b5a9c472a0ddbc64cea6c77965 /lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h | |
| parent | 5d7a6f31f765ece4ac1f4d5cb9cffdb924751273 (diff) | |
| download | bcm5719-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.h | 8 |
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. |

