From 9013db3399d2847899ba32daf58844bba1aef6dd Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Thu, 15 Sep 2011 21:59:13 +0000 Subject: DWARF: Reset the state after parsing a line table prologue and remove an unnecessary lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139859 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/DebugInfo/DWARFContext.cpp | 6 ++---- lib/DebugInfo/DWARFDebugAranges.cpp | 2 +- lib/DebugInfo/DWARFDebugLine.cpp | 2 ++ 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'lib/DebugInfo') diff --git a/lib/DebugInfo/DWARFContext.cpp b/lib/DebugInfo/DWARFContext.cpp index 4fc0b301be..e1ac398b10 100644 --- a/lib/DebugInfo/DWARFContext.cpp +++ b/lib/DebugInfo/DWARFContext.cpp @@ -141,10 +141,8 @@ DWARFCompileUnit *DWARFContext::getCompileUnitForOffset(uint32_t offset) { } DILineInfo DWARFContext::getLineInfoForAddress(uint64_t address) { - // First, get the index for the arange. - uint32_t arangeIndex = getDebugAranges()->findAddress(address); - // From there, get the offset of the compile unit. - uint32_t cuOffset = getDebugAranges()->offsetAtIndex(arangeIndex); + // First, get the offset of the compile unit. + uint32_t cuOffset = getDebugAranges()->findAddress(address); // Retrieve the compile unit. DWARFCompileUnit *cu = getCompileUnitForOffset(cuOffset); if (!cu) diff --git a/lib/DebugInfo/DWARFDebugAranges.cpp b/lib/DebugInfo/DWARFDebugAranges.cpp index 5053e19b71..576d37d781 100644 --- a/lib/DebugInfo/DWARFDebugAranges.cpp +++ b/lib/DebugInfo/DWARFDebugAranges.cpp @@ -100,7 +100,7 @@ void DWARFDebugAranges::dump(raw_ostream &OS) const { const uint32_t num_ranges = getNumRanges(); for (uint32_t i = 0; i < num_ranges; ++i) { const Range &range = Aranges[i]; - OS << format("0x%8.8x: [0x%8.8llx - 0x%8.8llx)", range.Offset, + OS << format("0x%8.8x: [0x%8.8llx - 0x%8.8llx)\n", range.Offset, (uint64_t)range.LoPC, (uint64_t)range.HiPC()); } } diff --git a/lib/DebugInfo/DWARFDebugLine.cpp b/lib/DebugInfo/DWARFDebugLine.cpp index 94fff6533e..d8200a0fd6 100644 --- a/lib/DebugInfo/DWARFDebugLine.cpp +++ b/lib/DebugInfo/DWARFDebugLine.cpp @@ -200,6 +200,8 @@ DWARFDebugLine::parseStatementTable(DataExtractor debug_line_data, const uint32_t end_offset = debug_line_offset + prologue->TotalLength + sizeof(prologue->TotalLength); + state.reset(); + while (*offset_ptr < end_offset) { uint8_t opcode = debug_line_data.getU8(offset_ptr); -- cgit v1.2.3