[Lldb-commits] [lldb] 81be680 - [lldb][nfc] Simplify DebugRanges class
Felipe de Azevedo Piovezan via lldb-commits
lldb-commits at lists.llvm.org
Fri May 12 05:50:38 PDT 2023
Author: Felipe de Azevedo Piovezan
Date: 2023-05-12T08:48:31-04:00
New Revision: 81be68062f49dccfb0c28b98f04d88b5343c4ae6
URL: https://github.com/llvm/llvm-project/commit/81be68062f49dccfb0c28b98f04d88b5343c4ae6
DIFF: https://github.com/llvm/llvm-project/commit/81be68062f49dccfb0c28b98f04d88b5343c4ae6.diff
LOG: [lldb][nfc] Simplify DebugRanges class
Most of the code changed here dates back to 2010, when LLDB was first
introduced upstream, as such it benefits from a slight cleanup.
The method "dump" is not used anywhere nor is it tested, so this commit removes
it.
The "findRanges" method returns a boolean which is never checked and indicates
whether the method found anything/assigned a range map to the out parameter.
This commit folds the out parameter into the return type of the method.
A handful of typedefs were also never used and therefore removed.
Differential Revision: https://reviews.llvm.org/D150363
Added:
Modified:
lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
index 6a0f11d2a1c49..d3598de5b3d31 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp
@@ -8,7 +8,6 @@
#include "DWARFDebugRanges.h"
#include "DWARFUnit.h"
-#include "lldb/Utility/Stream.h"
using namespace lldb_private;
@@ -72,55 +71,17 @@ bool DWARFDebugRanges::Extract(DWARFContext &context,
return range_offset != *offset_ptr;
}
-void DWARFDebugRanges::Dump(Stream &s,
- const DWARFDataExtractor &debug_ranges_data,
- lldb::offset_t *offset_ptr,
- dw_addr_t cu_base_addr) {
- uint32_t addr_size = s.GetAddressByteSize();
-
- dw_addr_t base_addr = cu_base_addr;
- while (
- debug_ranges_data.ValidOffsetForDataOfSize(*offset_ptr, 2 * addr_size)) {
- dw_addr_t begin = debug_ranges_data.GetMaxU64(offset_ptr, addr_size);
- dw_addr_t end = debug_ranges_data.GetMaxU64(offset_ptr, addr_size);
- // Extend 4 byte addresses that consists of 32 bits of 1's to be 64 bits of
- // ones
- if (begin == 0xFFFFFFFFull && addr_size == 4)
- begin = LLDB_INVALID_ADDRESS;
-
- s.Indent();
- if (begin == 0 && end == 0) {
- s.PutCString(" End");
- break;
- } else if (begin == LLDB_INVALID_ADDRESS) {
- // A base address selection entry
- base_addr = end;
- DumpAddress(s.AsRawOstream(), base_addr, sizeof(dw_addr_t),
- " Base address = ");
- } else {
- // Convert from offset to an address
- dw_addr_t begin_addr = begin + base_addr;
- dw_addr_t end_addr = end + base_addr;
-
- DumpAddressRange(s.AsRawOstream(), begin_addr, end_addr,
- sizeof(dw_addr_t), nullptr);
- }
- }
-}
-
-bool DWARFDebugRanges::FindRanges(const DWARFUnit *cu,
- dw_offset_t debug_ranges_offset,
- DWARFRangeList &range_list) const {
+DWARFRangeList
+DWARFDebugRanges::FindRanges(const DWARFUnit *cu,
+ dw_offset_t debug_ranges_offset) const {
dw_addr_t debug_ranges_address = cu->GetRangesBase() + debug_ranges_offset;
- range_map_const_iterator pos = m_range_map.find(debug_ranges_address);
- if (pos != m_range_map.end()) {
- range_list = pos->second;
-
- // All DW_AT_ranges are relative to the base address of the compile
- // unit. We add the compile unit base address to make sure all the
- // addresses are properly fixed up.
- range_list.Slide(cu->GetBaseAddress());
- return true;
- }
- return false;
+ auto pos = m_range_map.find(debug_ranges_address);
+ DWARFRangeList ans =
+ pos == m_range_map.end() ? DWARFRangeList() : pos->second;
+
+ // All DW_AT_ranges are relative to the base address of the compile
+ // unit. We add the compile unit base address to make sure all the
+ // addresses are properly fixed up.
+ ans.Slide(cu->GetBaseAddress());
+ return ans;
}
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
index b587845a67d91..5d5ddada6c2f9 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h
@@ -22,21 +22,14 @@ class DWARFDebugRanges {
DWARFDebugRanges();
void Extract(lldb_private::DWARFContext &context);
- bool FindRanges(const DWARFUnit *cu, dw_offset_t debug_ranges_offset,
- DWARFRangeList &range_list) const;
-
- 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);
+ DWARFRangeList FindRanges(const DWARFUnit *cu,
+ dw_offset_t debug_ranges_offset) const;
protected:
bool Extract(lldb_private::DWARFContext &context, lldb::offset_t *offset_ptr,
DWARFRangeList &range_list);
- typedef std::map<dw_offset_t, DWARFRangeList> range_map;
- typedef range_map::iterator range_map_iterator;
- typedef range_map::const_iterator range_map_const_iterator;
- range_map m_range_map;
+ std::map<dw_offset_t, DWARFRangeList> m_range_map;
};
#endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGRANGES_H
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
index bff24b1c8c0cc..91be5e5b7bb6f 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
@@ -1032,9 +1032,7 @@ DWARFUnit::FindRnglistFromOffset(dw_offset_t offset) {
if (!debug_ranges)
return llvm::make_error<llvm::object::GenericBinaryError>(
"No debug_ranges section");
- DWARFRangeList ranges;
- debug_ranges->FindRanges(this, offset, ranges);
- return ranges;
+ return debug_ranges->FindRanges(this, offset);
}
if (!GetRnglistTable())
More information about the lldb-commits
mailing list