summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
diff options
context:
space:
mode:
authorEd Maste <emaste@freebsd.org>2013-10-24 20:43:47 +0000
committerEd Maste <emaste@freebsd.org>2013-10-24 20:43:47 +0000
commiteeae72184b4efc76385ee33143fcaa9198a1a07a (patch)
treead443a27e9eda409b8d9ec57b3a5ef0365a3f26b /lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
parentda13af380af2827e3332c695a8dfb59625883433 (diff)
downloadbcm5719-llvm-eeae72184b4efc76385ee33143fcaa9198a1a07a.tar.gz
bcm5719-llvm-eeae72184b4efc76385ee33143fcaa9198a1a07a.zip
Introduce DWARFDataExtractor for 64-Bit DWARF parsing
Review: http://llvm-reviews.chandlerc.com/D2007 llvm-svn: 193368
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp17
1 files changed, 3 insertions, 14 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
index 7dc32127313..d083f8a615c 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp
@@ -162,7 +162,7 @@ DWARFDebugArangeSet::AddDescriptor(const DWARFDebugArangeSet::Descriptor& range)
}
bool
-DWARFDebugArangeSet::Extract(const DataExtractor &data, lldb::offset_t *offset_ptr)
+DWARFDebugArangeSet::Extract(const DWARFDataExtractor &data, lldb::offset_t *offset_ptr)
{
if (data.ValidOffset(*offset_ptr))
{
@@ -183,20 +183,9 @@ DWARFDebugArangeSet::Extract(const DataExtractor &data, lldb::offset_t *offset_p
// descriptor on the target system. This header is followed by a series
// of tuples. Each tuple consists of an address and a length, each in
// the size appropriate for an address on the target architecture.
- size_t dwarf_offset_size = 4;
- m_header.length = data.GetU32(offset_ptr);
- if (m_header.length == 0xffffffff)
- {
- dwarf_offset_size = 8;
- m_header.length = data.GetU64(offset_ptr);
- }
- else if (m_header.length >= 0xffffff00)
- {
- // Reserved.
- return false;
- }
+ m_header.length = data.GetDWARFInitialLength(offset_ptr);
m_header.version = data.GetU16(offset_ptr);
- m_header.cu_offset = data.GetMaxU64(offset_ptr, dwarf_offset_size);
+ m_header.cu_offset = data.GetDWARFOffset(offset_ptr);
m_header.addr_size = data.GetU8(offset_ptr);
m_header.seg_size = data.GetU8(offset_ptr);
OpenPOWER on IntegriCloud