1 //===-- DWARFDebugAranges.h -------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef SymbolFileDWARF_DWARFDebugAranges_h_
11 #define SymbolFileDWARF_DWARFDebugAranges_h_
13 #include "DWARFDebugArangeSet.h"
16 #include "lldb/Core/RangeMap.h"
18 class SymbolFileDWARF;
20 class DWARFDebugAranges
23 typedef lldb_private::RangeDataArray<dw_addr_t, uint32_t, dw_offset_t, 1> RangeToDIE;
26 typedef RangeToDIE::Entry Range;
27 typedef std::vector<RangeToDIE::Entry> RangeColl;
38 Extract(const lldb_private::DWARFDataExtractor &debug_aranges_data);
41 Generate(SymbolFileDWARF* dwarf2Data);
43 // Use append range multiple times and then call sort
45 AppendRange (dw_offset_t cu_offset,
53 RangeAtIndex(uint32_t idx) const
55 return m_aranges.GetEntryAtIndex (idx);
59 Dump (lldb_private::Log *log) const;
62 FindAddress(dw_addr_t address) const;
67 return m_aranges.IsEmpty();
72 return m_aranges.GetSize();
76 OffsetAtIndex(uint32_t idx) const
78 const Range *range = m_aranges.GetEntryAtIndex (idx);
81 return DW_INVALID_OFFSET;
85 Dump(SymbolFileDWARF* dwarf2Data, lldb_private::Stream *s);
94 #endif // SymbolFileDWARF_DWARFDebugAranges_h_