11#include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
18 llvm::DWARFDataExtractor extractor =
20 llvm::DWARFDebugRangeList extracted_list;
21 uint64_t current_offset = 0;
22 auto extract_next_list = [&] {
23 if (
auto error = extracted_list.extract(extractor, ¤t_offset)) {
24 consumeError(std::move(
error));
30 uint64_t previous_offset = current_offset;
31 while (extractor.isValidOffset(current_offset) && extract_next_list()) {
33 lldb_range_list.
Reserve(extracted_list.getEntries().size());
34 for (
auto &range : extracted_list.getEntries())
35 lldb_range_list.
Append(range.StartAddress,
36 range.EndAddress - range.StartAddress);
37 lldb_range_list.
Sort();
38 previous_offset = current_offset;
static llvm::raw_ostream & error(Stream &strm)
std::map< dw_offset_t, DWARFRangeList > m_range_map
DWARFRangeList FindRanges(const DWARFUnit *cu, dw_offset_t debug_ranges_offset) const
void Extract(lldb_private::DWARFContext &context)
dw_addr_t GetRangesBase() const
dw_addr_t GetBaseAddress() const
const DWARFDataExtractor & getOrLoadRangesData()
void Slide(BaseType slide)
void Append(const Entry &entry)
void Reserve(typename Collection::size_type size)
lldb_private::RangeVector< dw_addr_t, dw_addr_t, 2 > DWARFRangeList
A class that represents a running process on the host machine.