diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h index f514359e00a..e239bc54add 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h @@ -18,8 +18,9 @@ class DWARFDebugRanges { public: DWARFDebugRanges(); - ~DWARFDebugRanges(); - void Extract(SymbolFileDWARF *dwarf2Data); + virtual ~DWARFDebugRanges(); + virtual void Extract(SymbolFileDWARF *dwarf2Data); + static void Dump(lldb_private::Stream &s, const lldb_private::DWARFDataExtractor &debug_ranges_data, lldb::offset_t *offset_ptr, dw_addr_t cu_base_addr); @@ -37,4 +38,17 @@ protected: range_map m_range_map; }; +// DWARF v5 .debug_rnglists section. +class DWARFDebugRngLists : public DWARFDebugRanges { +public: + void Extract(SymbolFileDWARF *dwarf2Data) override; + +protected: + bool ExtractRangeList(const lldb_private::DWARFDataExtractor &data, + uint8_t addrSize, lldb::offset_t *offset_ptr, + DWARFRangeList &list); + + std::vector<uint64_t> Offsets; +}; + #endif // SymbolFileDWARF_DWARFDebugRanges_h_ |