}
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)
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());
}
}
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);