diff --git a/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp b/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp index 8ec3f1729b974..5ab80e339a1ad 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp @@ -851,6 +851,86 @@ unsigned DWARFVerifier::verifyDebugInfoAttribute(const DWARFDie &Die, } break; } + case DW_AT_LLVM_stmt_sequence: { + // Make sure the offset in the DW_AT_LLVM_stmt_sequence attribute is valid + // and points to a valid sequence offset in the line table. + auto SectionOffset = AttrValue.Value.getAsSectionOffset(); + if (!SectionOffset) { + ReportError("Invalid DW_AT_LLVM_stmt_sequence encoding", + "DIE has invalid DW_AT_LLVM_stmt_sequence encoding"); + break; + } + if (*SectionOffset >= U->getLineSection().Data.size()) { + ReportError( + "DW_AT_LLVM_stmt_sequence offset out of bounds", + "DW_AT_LLVM_stmt_sequence offset is beyond .debug_line bounds: " + + llvm::formatv("{0:x8}", *SectionOffset)); + break; + } + + // Get the line table for this unit to validate bounds + const auto *LineTable = DCtx.getLineTableForUnit(U); + if (!LineTable) { + ReportError("DW_AT_LLVM_stmt_sequence without line table", + "DIE has DW_AT_LLVM_stmt_sequence but compile unit has no " + "line table"); + break; + } + + // Get the DW_AT_stmt_list offset from the compile unit DIE + DWARFDie CUDie = U->getUnitDIE(); + auto StmtListOffset = toSectionOffset(CUDie.find(DW_AT_stmt_list)); + if (!StmtListOffset) { + ReportError("DW_AT_LLVM_stmt_sequence without DW_AT_stmt_list", + "DIE has DW_AT_LLVM_stmt_sequence but compile unit has no " + "DW_AT_stmt_list"); + break; + } + + const int8_t DwarfOffset = + LineTable->Prologue.getFormParams().getDwarfOffsetByteSize(); + // Calculate the bounds of this specific line table + uint64_t LineTableStart = *StmtListOffset; + uint64_t PrologueLength = LineTable->Prologue.PrologueLength; + uint64_t TotalLength = LineTable->Prologue.TotalLength; + uint64_t LineTableEnd = LineTableStart + TotalLength + DwarfOffset; + + // See DWARF definition for this, the following three do not + // count toward prologue length. Calculate SequencesStart correctly + // according to DWARF specification: + uint64_t InitialLengthSize = DwarfOffset; + // Version field is always 2 bytes + uint64_t VersionSize = 2; + uint64_t PrologueLengthSize = DwarfOffset; + uint64_t SequencesStart = LineTableStart + InitialLengthSize + VersionSize + + PrologueLengthSize + PrologueLength; + + // Check if the offset is within the bounds of this specific line table + if (*SectionOffset < SequencesStart || *SectionOffset >= LineTableEnd) { + ReportError("DW_AT_LLVM_stmt_sequence offset out of line table bounds", + "DW_AT_LLVM_stmt_sequence offset " + + llvm::formatv("{0:x8}", *SectionOffset) + + " is not within the line table bounds [" + + llvm::formatv("{0:x8}", SequencesStart) + ", " + + llvm::formatv("{0:x8}", LineTableEnd) + ")"); + break; + } + + // Check if the offset matches any of the sequence offset. + auto It = + std::find_if(LineTable->Sequences.begin(), LineTable->Sequences.end(), + [SectionOffset](const auto &Sequence) { + return Sequence.StmtSeqOffset == *SectionOffset; + }); + + if (It == LineTable->Sequences.end()) + ReportError( + "Invalid DW_AT_LLVM_stmt_sequence offset", + "DW_AT_LLVM_stmt_sequence offset " + + llvm::formatv("{0:x8}", *SectionOffset) + + " does not point to a valid sequence offset in the line table"); + break; + } default: break; } diff --git a/llvm/test/tools/llvm-dwarfdump/verify_stmt_seq.yaml b/llvm/test/tools/llvm-dwarfdump/verify_stmt_seq.yaml new file mode 100644 index 0000000000000..5312c2573902d --- /dev/null +++ b/llvm/test/tools/llvm-dwarfdump/verify_stmt_seq.yaml @@ -0,0 +1,1656 @@ +# Object file copied from llvm/test/tools/dsymutil/ARM/stmt-seq-macho.test +# Then manually tempered with some of the value of the attribute +# I hope there are easier ways to construct tests like this. + +# RUN: yaml2obj %s -o verify_stmt_seq.o +# RUN: not llvm-dwarfdump -verify -debug-info verify_stmt_seq.o | FileCheck %s --check-prefix=CHECK_INVALID --implicit-check-not=error: +# RUN: llvm-dwarfdump -debug-line -verbose -debug-info verify_stmt_seq.o | FileCheck %s --check-prefix=CHECK_DEBUG_LINE + +# CHECK_INVALID: error: DW_AT_LLVM_stmt_sequence offset 0x00000000 is not within the line table bounds [0x00000034, 0x000000fd) +# CHECK_INVALID: DW_AT_LLVM_stmt_sequence [DW_FORM_sec_offset] (0x00000000) + +# CHECK_DEBUG_LINE: Address Line Column File ISA Discriminator OpIndex Flags +# CHECK_DEBUG_LINE-NEXT: ------------------ ------ ------ ------ --- ------------- ------- ------------- +# CHECK_DEBUG_LINE-NEXT: 0x00000034: 05 DW_LNS_set_column (10) +# CHECK_DEBUG_LINE-NEXT: 0x00000036: 0a DW_LNS_set_prologue_end +# CHECK_DEBUG_LINE-NEXT: 0x00000037: 00 DW_LNE_set_address (0x0000000000000000) +# CHECK_DEBUG_LINE-NEXT: 0x00000042: 14 address += 0, line += 2, op-index += 0 +# CHECK_DEBUG_LINE-NEXT: 0x0000000000000000 3 10 1 0 0 0 is_stmt prologue_end +# CHECK_DEBUG_LINE-NEXT: 0x00000043: 05 DW_LNS_set_column (3) +# CHECK_DEBUG_LINE-NEXT: 0x00000045: 06 DW_LNS_negate_stmt +# CHECK_DEBUG_LINE-NEXT: 0x00000046: 4a address += 4, line += 0, op-index += 0 +# CHECK_DEBUG_LINE-NEXT: 0x0000000000000004 3 3 1 0 0 0 +# CHECK_DEBUG_LINE-NEXT: 0x00000047: 00 DW_LNE_end_sequence +# CHECK_DEBUG_LINE-NEXT: 0x0000000000000004 3 3 1 0 0 0 end_sequence + +# 0xd3 would be a valid offset, if the line table wasn't ill formed with two rows having the same PC (0x8c). +# CHECK_INVALID: error: DW_AT_LLVM_stmt_sequence offset 0x000000d3 does not point to a valid sequence offset in the line table +# CHECK_INVALID: DW_AT_LLVM_stmt_sequence [DW_FORM_sec_offset] (0x000000d3) + +# CHECK_DEBUG_LINE: 0x000000d3: 05 DW_LNS_set_column (85) +# CHECK_DEBUG_LINE-NEXT: 0x000000d5: 0a DW_LNS_set_prologue_end +# CHECK_DEBUG_LINE-NEXT: 0x000000d6: 00 DW_LNE_set_address (0x000000000000008c) +# CHECK_DEBUG_LINE-NEXT: 0x000000e1: 03 DW_LNS_advance_line (30) +# CHECK_DEBUG_LINE-NEXT: 0x000000e3: 01 DW_LNS_copy +# CHECK_DEBUG_LINE-NEXT: 0x000000000000008c 30 85 1 0 0 0 is_stmt prologue_end +# CHECK_DEBUG_LINE-NEXT: 0x000000e4: 00 DW_LNE_end_sequence +# CHECK_DEBUG_LINE-NEXT: 0x000000000000008c 30 85 1 0 0 0 is_stmt end_sequence + +# CHECK_INVALID: error: DIE has invalid DW_AT_LLVM_stmt_sequence encoding +# CHECK_INVALID: DW_AT_LLVM_stmt_sequence [DW_FORM_data4] (0x000000a7) +# CHECK_INVALID: error: DW_AT_LLVM_stmt_sequence offset 0x000000ab does not point to a valid sequence offset in the line table +# CHECK_INVALID: DW_AT_LLVM_stmt_sequence [DW_FORM_sec_offset] (0x000000ab) + +# CHECK_INVALID: error: DW_AT_LLVM_stmt_sequence offset is beyond .debug_line bounds: 0x00eeeee7 +# CHECK_INVALID: DW_AT_LLVM_stmt_sequence [DW_FORM_sec_offset] (0x00eeeee7) + +# CHECK_DEBUG_LINE: 0x000000f8: 02 DW_LNS_advance_pc (addr += 4, op-index += 0) +# CHECK_DEBUG_LINE-NEXT: 0x000000fa: 00 DW_LNE_end_sequence +# CHECK_DEBUG_LINE-NEXT: 0x0000000000000094 30 86 1 0 0 0 is_stmt end_sequence + +# CHECK_INVALID: error: Aggregated error counts: +# CHECK_INVALID-NEXT: error: DW_AT_LLVM_stmt_sequence offset out of bounds occurred 1 time(s). +# CHECK_INVALID-NEXT: error: DW_AT_LLVM_stmt_sequence offset out of line table bounds occurred 1 time(s). +# CHECK_INVALID-NEXT: error: Invalid DW_AT_LLVM_stmt_sequence encoding occurred 1 time(s). +# CHECK_INVALID-NEXT: error: Invalid DW_AT_LLVM_stmt_sequence offset occurred 2 time(s). + +--- !mach-o +IsLittleEndian: true +FileHeader: + magic: 0xFEEDFACF + cputype: 0x100000C + cpusubtype: 0x0 + filetype: 0x1 + ncmds: 5 + sizeofcmds: 1176 + flags: 0x2000 + reserved: 0x0 +LoadCommands: + - cmd: LC_SEGMENT_64 + cmdsize: 1032 + segname: '' + vmaddr: 0 + vmsize: 3125 + fileoff: 1208 + filesize: 3125 + maxprot: 7 + initprot: 7 + nsects: 12 + flags: 0 + Sections: + - sectname: __text + segname: __TEXT + addr: 0x0 + size: 148 + offset: 0x4B8 + align: 2 + reloff: 0x10F0 + nreloc: 8 + flags: 0x80000400 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 00040011C0035FD600100011C0035FD600580051C0035FD600100011C0035FD600580051C0035FD6FFC300D1F44F01A9FD7B02A9FD8300916000805200000094F30300AA20058052000000941400130B6001805200000094F30300AA40058052000000947302000B0100009021000091E03F0091000000948002130BFD7B42A9F44F41A9FFC30091C0035FD600000014C0035FD6 + relocations: + - address: 0x8C + symbolnum: 4 + pcrel: true + length: 2 + extern: true + type: 2 + scattered: false + value: 0 + - address: 0x74 + symbolnum: 3 + pcrel: true + length: 2 + extern: true + type: 2 + scattered: false + value: 0 + - address: 0x6C + symbolnum: 1 + pcrel: false + length: 2 + extern: true + type: 4 + scattered: false + value: 0 + - address: 0x68 + symbolnum: 1 + pcrel: true + length: 2 + extern: true + type: 3 + scattered: false + value: 0 + - address: 0x60 + symbolnum: 5 + pcrel: true + length: 2 + extern: true + type: 2 + scattered: false + value: 0 + - address: 0x54 + symbolnum: 6 + pcrel: true + length: 2 + extern: true + type: 2 + scattered: false + value: 0 + - address: 0x48 + symbolnum: 9 + pcrel: true + length: 2 + extern: true + type: 2 + scattered: false + value: 0 + - address: 0x3C + symbolnum: 7 + pcrel: true + length: 2 + extern: true + type: 2 + scattered: false + value: 0 + - sectname: __cstring + segname: __TEXT + addr: 0x94 + size: 5 + offset: 0x54C + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: '7465737400' + - sectname: __debug_loc + segname: __DWARF + addr: 0x99 + size: 412 + offset: 0x551 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 08000000000000000C000000000000000100500C0000000000000010000000000000000400A301509F0000000000000000000000000000000008000000000000000C00000000000000030070039F0000000000000000000000000000000010000000000000001400000000000000010050140000000000000018000000000000000400A301509F0000000000000000000000000000000018000000000000001C000000000000000100501C0000000000000020000000000000000400A301509F0000000000000000000000000000000018000000000000001C00000000000000030070039F0000000000000000000000000000000020000000000000002400000000000000010050240000000000000028000000000000000400A301509F00000000000000000000000000000000240000000000000028000000000000000100500000000000000000000000000000000038000000000000004400000000000000030011009F4400000000000000500000000000000001006350000000000000005C0000000000000001006400000000000000000000000000000000 + - sectname: __debug_abbrev + segname: __DWARF + addr: 0x235 + size: 372 + offset: 0x6ED + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_info + segname: __DWARF + addr: 0x3A9 + size: 747 + offset: 0x861 + align: 0 + reloff: 0x1130 + nreloc: 16 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + relocations: + - address: 0x2A7 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x28E + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x253 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x1F5 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x1E1 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x1CE + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x1BA + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x1A7 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x169 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x12D + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0xF1 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0xC4 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x88 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x5F + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x37 + symbolnum: 2 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x22 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - sectname: __debug_str + segname: __DWARF + addr: 0x694 + size: 400 + offset: 0xB4C + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __apple_names + segname: __DWARF + addr: 0x824 + size: 288 + offset: 0xCDC + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 485341480100000009000000090000000C00000000000000010000000100060000000000FFFFFFFFFFFFFFFF0100000003000000040000000600000007000000080000004A08311CC78E3C8288CB36CF89CB36CFD1125E53522B705390D9F86F6A7F9A7C4908311C8C0000009C000000AC000000BC000000CC000000DC000000EC00000000010000100100000601000001000000F000000000000000D6000000010000005E00000000000000F600000001000000C30000000000000016010000010000002C01000000000000440100000100000052020000000000005C01000001000000A6020000000000002B0100000200000052020000A60200000000000026010000010000006801000000000000E6000000010000008700000000000000 + - sectname: __apple_objc + segname: __DWARF + addr: 0x944 + size: 36 + offset: 0xDFC + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 485341480100000001000000000000000C000000000000000100000001000600FFFFFFFF + - sectname: __apple_namespac + segname: __DWARF + addr: 0x968 + size: 36 + offset: 0xE20 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 485341480100000001000000000000000C000000000000000100000001000600FFFFFFFF + - sectname: __apple_types + segname: __DWARF + addr: 0x98C + size: 195 + offset: 0xE44 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 48534148010000000500000005000000140000000000000003000000010006000300050004000B000000000002000000FFFFFFFF03000000040000007CA8F05D90D9F86F5B738CDC3080880B6320957C64000000770000008A0000009D000000B0000000380100000100000027020000130000000000002B010000010000000502000013000000000000C20000000100000057000000240000000000007401000001000000DE02000024000000000000BD000000010000005000000024000000000000 + - sectname: __debug_frame + segname: __DWARF + addr: 0xA50 + size: 232 + offset: 0xF08 + align: 3 + reloff: 0x11B0 + nreloc: 8 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 14000000FFFFFFFF0400080001781E0C1F00000000000000140000000000000000000000000000000800000000000000140000000000000008000000000000000800000000000000140000000000000010000000000000000800000000000000140000000000000018000000000000000800000000000000140000000000000020000000000000000800000000000000240000000000000028000000000000006400000000000000500C1D109E019D02930394040000000014000000000000008C000000000000000400000000000000140000000000000090000000000000000400000000000000 + relocations: + - address: 0xD8 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0xC0 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x98 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x80 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x68 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x50 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x38 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x20 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - sectname: __debug_line + segname: __DWARF + addr: 0xB38 + size: 253 + offset: 0xFF0 + align: 0 + reloff: 0x11F0 + nreloc: 8 + flags: 0x2000000 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + relocations: + - address: 0xED + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0xD9 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0xAA + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x96 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x7E + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x66 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x50 + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - address: 0x3A + symbolnum: 1 + pcrel: false + length: 3 + extern: false + type: 0 + scattered: false + value: 0 + - cmd: LC_BUILD_VERSION + cmdsize: 24 + platform: 1 + minos: 720896 + sdk: 0 + ntools: 0 + - cmd: LC_LINKER_OPTIMIZATION_HINT + cmdsize: 16 + dataoff: 4656 + datasize: 8 + - cmd: LC_SYMTAB + cmdsize: 24 + symoff: 4664 + nsyms: 11 + stroff: 4840 + strsize: 168 + - cmd: LC_DYSYMTAB + cmdsize: 80 + ilocalsym: 0 + nlocalsym: 3 + iextdefsym: 3 + nextdefsym: 8 + iundefsym: 11 + nundefsym: 0 + tocoff: 0 + ntoc: 0 + modtaboff: 0 + nmodtab: 0 + extrefsymoff: 0 + nextrefsyms: 0 + indirectsymoff: 0 + nindirectsyms: 0 + extreloff: 0 + nextrel: 0 + locreloff: 0 + nlocrel: 0 +LinkEditData: + NameList: + - n_strx: 155 + n_type: 0xE + n_sect: 1 + n_desc: 0 + n_value: 0 + - n_strx: 1 + n_type: 0xE + n_sect: 2 + n_desc: 0 + n_value: 148 + - n_strx: 149 + n_type: 0xE + n_sect: 2 + n_desc: 0 + n_value: 148 + - n_strx: 39 + n_type: 0xF + n_sect: 1 + n_desc: 192 + n_value: 140 + - n_strx: 14 + n_type: 0xF + n_sect: 1 + n_desc: 192 + n_value: 144 + - n_strx: 132 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 0 + - n_strx: 115 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 16 + - n_strx: 81 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 32 + - n_strx: 98 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 8 + - n_strx: 64 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 24 + - n_strx: 8 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 40 + StringTable: + - '' + - l_.str + - _main + - __ZN12length_errorC2EPKc + - __ZN12length_errorC1EPKc + - _function3_copy2 + - _function2_copy2 + - _function3_copy1 + - _function2_copy1 + - _function1_copy1 + - ltmp1 + - ltmp0 + - '' + - '' + - '' + - '' + - '' + - '' + - '' +DWARF: + debug_str: + - 'Facebook clang version 19.1.5 (https://git.internal.tfbnw.net/repos/git/rw/osmeta/external/llvm-project b36c9ae1f8f2b39e4aafb9ca4700c608c3036365)' + - stmt_seq_macho.cpp + - '/' + - '/private/tmp/stmt_seq' + - char + - __ARRAY_SIZE_TYPE__ + - function1_copy1 + - function3_copy1 + - function2_copy1 + - function3_copy2 + - function2_copy2 + - main + - length_error + - logic_error + - _ZN12length_errorC1EPKc + - _ZN12length_errorC2EPKc + - int + - a + - b + - result + - e + - sum + - this + - s + debug_abbrev: + - ID: 0 + Table: + - Code: 0x1 + Tag: DW_TAG_compile_unit + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_producer + Form: DW_FORM_strp + - Attribute: DW_AT_language + Form: DW_FORM_data2 + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_LLVM_sysroot + Form: DW_FORM_strp + - Attribute: DW_AT_stmt_list + Form: DW_FORM_sec_offset + - Attribute: DW_AT_comp_dir + Form: DW_FORM_strp + - Attribute: DW_AT_APPLE_optimized + Form: DW_FORM_flag_present + - Attribute: DW_AT_low_pc + Form: DW_FORM_addr + - Attribute: DW_AT_high_pc + Form: DW_FORM_data4 + - Code: 0x2 + Tag: DW_TAG_variable + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_location + Form: DW_FORM_exprloc + - Code: 0x3 + Tag: DW_TAG_array_type + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0x4 + Tag: DW_TAG_subrange_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_count + Form: DW_FORM_data1 + - Code: 0x5 + Tag: DW_TAG_const_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0x6 + Tag: DW_TAG_base_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_encoding + Form: DW_FORM_data1 + - Attribute: DW_AT_byte_size + Form: DW_FORM_data1 + - Code: 0x7 + Tag: DW_TAG_base_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_byte_size + Form: DW_FORM_data1 + - Attribute: DW_AT_encoding + Form: DW_FORM_data1 + - Code: 0x8 + Tag: DW_TAG_subprogram + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_low_pc + Form: DW_FORM_addr + - Attribute: DW_AT_high_pc + Form: DW_FORM_data4 + - Attribute: DW_AT_APPLE_omit_frame_ptr + Form: DW_FORM_flag_present + - Attribute: DW_AT_LLVM_stmt_sequence + Form: DW_FORM_sec_offset + - Attribute: DW_AT_frame_base + Form: DW_FORM_exprloc + - Attribute: DW_AT_call_all_calls + Form: DW_FORM_flag_present + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_external + Form: DW_FORM_flag_present + - Attribute: DW_AT_APPLE_optimized + Form: DW_FORM_flag_present + - Code: 0x9 + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0xA + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_sec_offset + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0xB + Tag: DW_TAG_variable + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_sec_offset + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0xC + Tag: DW_TAG_subprogram + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_low_pc + Form: DW_FORM_addr + - Attribute: DW_AT_high_pc + Form: DW_FORM_data4 + - Attribute: DW_AT_LLVM_stmt_sequence + Form: DW_FORM_data4 + - Attribute: DW_AT_frame_base + Form: DW_FORM_exprloc + - Attribute: DW_AT_call_all_calls + Form: DW_FORM_flag_present + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_external + Form: DW_FORM_flag_present + - Attribute: DW_AT_APPLE_optimized + Form: DW_FORM_flag_present + - Code: 0xD + Tag: DW_TAG_variable + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_exprloc + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0xE + Tag: DW_TAG_call_site + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_call_origin + Form: DW_FORM_ref4 + - Attribute: DW_AT_call_return_pc + Form: DW_FORM_addr + - Code: 0xF + Tag: DW_TAG_call_site_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_exprloc + - Attribute: DW_AT_call_value + Form: DW_FORM_exprloc + - Code: 0x10 + Tag: DW_TAG_structure_type + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_calling_convention + Form: DW_FORM_data1 + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_byte_size + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Code: 0x11 + Tag: DW_TAG_inheritance + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_data_member_location + Form: DW_FORM_data1 + - Code: 0x12 + Tag: DW_TAG_subprogram + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_declaration + Form: DW_FORM_flag_present + - Attribute: DW_AT_external + Form: DW_FORM_flag_present + - Attribute: DW_AT_APPLE_optimized + Form: DW_FORM_flag_present + - Attribute: DW_AT_explicit + Form: DW_FORM_flag_present + - Code: 0x13 + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_artificial + Form: DW_FORM_flag_present + - Code: 0x14 + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0x15 + Tag: DW_TAG_subprogram + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_declaration + Form: DW_FORM_flag_present + - Attribute: DW_AT_external + Form: DW_FORM_flag_present + - Attribute: DW_AT_APPLE_optimized + Form: DW_FORM_flag_present + - Code: 0x16 + Tag: DW_TAG_pointer_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0x17 + Tag: DW_TAG_subprogram + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_low_pc + Form: DW_FORM_addr + - Attribute: DW_AT_high_pc + Form: DW_FORM_data4 + - Attribute: DW_AT_APPLE_omit_frame_ptr + Form: DW_FORM_flag_present + - Attribute: DW_AT_LLVM_stmt_sequence + Form: DW_FORM_sec_offset + - Attribute: DW_AT_frame_base + Form: DW_FORM_exprloc + - Attribute: DW_AT_object_pointer + Form: DW_FORM_ref4 + - Attribute: DW_AT_call_all_calls + Form: DW_FORM_flag_present + - Attribute: DW_AT_linkage_name + Form: DW_FORM_strp + - Attribute: DW_AT_specification + Form: DW_FORM_ref4 + - Code: 0x18 + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_exprloc + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Attribute: DW_AT_artificial + Form: DW_FORM_flag_present + - Code: 0x19 + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_exprloc + - Attribute: DW_AT_name + Form: DW_FORM_strp + - Attribute: DW_AT_decl_file + Form: DW_FORM_data1 + - Attribute: DW_AT_decl_line + Form: DW_FORM_data1 + - Attribute: DW_AT_type + Form: DW_FORM_ref4 + - Code: 0x1A + Tag: DW_TAG_call_site + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_call_origin + Form: DW_FORM_ref4 + - Attribute: DW_AT_call_tail_call + Form: DW_FORM_flag_present + - Attribute: DW_AT_call_pc + Form: DW_FORM_addr + debug_info: + - Length: 0x2E7 + Version: 4 + AbbrevTableID: 0 + AbbrOffset: 0x0 + AddrSize: 8 + Entries: + - AbbrCode: 0x1 + Values: + - Value: 0x0 + - Value: 0x21 + - Value: 0x92 + - Value: 0xA5 + - Value: 0x0 + - Value: 0xA7 + - Value: 0x1 + - Value: 0x0 + - Value: 0x94 + - AbbrCode: 0x2 + Values: + - Value: 0x3F + - Value: 0x1 + - Value: 0x27 + - Value: 0x9 + BlockData: [ 0x3, 0x94, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0 ] + - AbbrCode: 0x3 + Values: + - Value: 0x4B + - AbbrCode: 0x4 + Values: + - Value: 0x57 + - Value: 0x5 + - AbbrCode: 0x0 + - AbbrCode: 0x5 + Values: + - Value: 0x50 + - AbbrCode: 0x6 + Values: + - Value: 0xBD + - Value: 0x6 + - Value: 0x1 + - AbbrCode: 0x7 + Values: + - Value: 0xC2 + - Value: 0x8 + - Value: 0x7 + - AbbrCode: 0x8 + Values: + - Value: 0x0 + - Value: 0x8 + - Value: 0x1 + - BlockData: [ 0x6F ] + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x1 + - Value: 0xD6 + - Value: 0x1 + - Value: 0x2 + - Value: 0x2DE + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0x9 + Values: + - Value: 0x178 + - Value: 0x1 + - Value: 0x2 + - Value: 0x2DE + - AbbrCode: 0x0 + - AbbrCode: 0x8 + Values: + - Value: 0x8 + - Value: 0x8 + - Value: 0x1 + - Value: 0x4A + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x1 + - Value: 0xE6 + - Value: 0x1 + - Value: 0x6 + - Value: 0x2DE + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0xA + Values: + - Value: 0x0 + - Value: 0x178 + - Value: 0x1 + - Value: 0x6 + - Value: 0x2DE + - AbbrCode: 0xB + Values: + - Value: 0x39 + - Value: 0x17A + - Value: 0x1 + - Value: 0x7 + - Value: 0x2DE + - AbbrCode: 0x0 + - AbbrCode: 0x8 + Values: + - Value: 0x10 + - Value: 0x8 + - Value: 0x1 + - Value: 0x60 + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x1 + - Value: 0xF6 + - Value: 0x1 + - Value: 0xB + - Value: 0x2DE + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0xA + Values: + - Value: 0x5E + - Value: 0x178 + - Value: 0x1 + - Value: 0xB + - Value: 0x2DE + - AbbrCode: 0x0 + - AbbrCode: 0x8 + Values: + - Value: 0x18 + - Value: 0x8 + - Value: 0x1 + - Value: 0xD3 + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x1 + - Value: 0x106 + - Value: 0x1 + - Value: 0xF + - Value: 0x2DE + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0xA + Values: + - Value: 0x97 + - Value: 0x178 + - Value: 0x1 + - Value: 0xF + - Value: 0x2DE + - AbbrCode: 0xB + Values: + - Value: 0xD0 + - Value: 0x17A + - Value: 0x1 + - Value: 0x10 + - Value: 0x2DE + - AbbrCode: 0x0 + - AbbrCode: 0x8 + Values: + - Value: 0x20 + - Value: 0x8 + - Value: 0x1 + - Value: 0xE7 + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x1 + - Value: 0x116 + - Value: 0x1 + - Value: 0x14 + - Value: 0x2DE + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0xA + Values: + - Value: 0xF5 + - Value: 0x178 + - Value: 0x1 + - Value: 0x14 + - Value: 0x2DE + - AbbrCode: 0xB + Values: + - Value: 0x12E + - Value: 0x17C + - Value: 0x1 + - Value: 0x15 + - Value: 0x2DE + - AbbrCode: 0x0 + - AbbrCode: 0xC + Values: + - Value: 0x28 + - Value: 0x64 + - Value: 0xA7 + - Value: 0x1 + BlockData: [ 0x6D ] + - Value: 0x1 + - Value: 0x126 + - Value: 0x1 + - Value: 0x21 + - Value: 0x2DE + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0xD + Values: + - Value: 0x2 + BlockData: [ 0x8F, 0xF ] + - Value: 0x183 + - Value: 0x1 + - Value: 0x27 + - Value: 0x205 + - AbbrCode: 0xB + Values: + - Value: 0x151 + - Value: 0x185 + - Value: 0x1 + - Value: 0x22 + - Value: 0x2DE + - AbbrCode: 0xE + Values: + - Value: 0x12C + - Value: 0x40 + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x1 + BlockData: [ 0x33 ] + - AbbrCode: 0x0 + - AbbrCode: 0xE + Values: + - Value: 0xF0 + - Value: 0x4C + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x2 + BlockData: [ 0x10, 0x29 ] + - AbbrCode: 0x0 + - AbbrCode: 0xE + Values: + - Value: 0xC3 + - Value: 0x58 + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x1 + BlockData: [ 0x3B ] + - AbbrCode: 0x0 + - AbbrCode: 0xE + Values: + - Value: 0x5E + - Value: 0x64 + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x2 + BlockData: [ 0x10, 0x2A ] + - AbbrCode: 0x0 + - AbbrCode: 0xE + Values: + - Value: 0x252 + - Value: 0x78 + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x2 + BlockData: [ 0x8F, 0xF ] + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0x10 + Values: + - Value: 0x5 + - Value: 0x12B + - Value: 0x1 + - Value: 0x1 + - Value: 0x1D + - AbbrCode: 0x11 + Values: + - Value: 0x227 + - Value: 0x0 + - AbbrCode: 0x12 + Values: + - Value: 0x12B + - Value: 0x1 + - Value: 0x1E + - Value: 0x1 + - Value: 0x1 + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0x13 + Values: + - Value: 0x24D + - Value: 0x1 + - AbbrCode: 0x14 + Values: + - Value: 0x248 + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0x10 + Values: + - Value: 0x5 + - Value: 0x138 + - Value: 0x1 + - Value: 0x1 + - Value: 0x19 + - AbbrCode: 0x15 + Values: + - Value: 0x138 + - Value: 0x1 + - Value: 0x1A + - Value: 0x1 + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0x13 + Values: + - Value: 0x243 + - Value: 0x1 + - AbbrCode: 0x14 + Values: + - Value: 0x248 + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0x16 + Values: + - Value: 0x227 + - AbbrCode: 0x16 + Values: + - Value: 0x4B + - AbbrCode: 0x16 + Values: + - Value: 0x205 + - AbbrCode: 0x17 + Values: + - Value: 0x8C + - Value: 0x4 + - Value: 0x1 + - Value: 0xAB + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x271 + - Value: 0x1 + - Value: 0x144 + - Value: 0x214 + - AbbrCode: 0x18 + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x189 + - Value: 0x2E5 + - Value: 0x1 + - AbbrCode: 0x19 + Values: + - Value: 0x1 + BlockData: [ 0x51 ] + - Value: 0x18E + - Value: 0x1 + - Value: 0x1E + - Value: 0x248 + - AbbrCode: 0x1A + Values: + - Value: 0x2A6 + - Value: 0x1 + - Value: 0x8C + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x3 + BlockData: [ 0xA3, 0x1, 0x50 ] + - AbbrCode: 0xF + Values: + - Value: 0x1 + BlockData: [ 0x51 ] + - Value: 0x3 + BlockData: [ 0xA3, 0x1, 0x51 ] + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0x17 + Values: + - Value: 0x90 + - Value: 0x4 + - Value: 0x1 + - Value: 0xEEEEE7 + - Value: 0x1 + BlockData: [ 0x6F ] + - Value: 0x2C5 + - Value: 0x1 + - Value: 0x15C + - Value: 0x214 + - AbbrCode: 0x18 + Values: + - Value: 0x1 + BlockData: [ 0x50 ] + - Value: 0x189 + - Value: 0x2E5 + - Value: 0x1 + - AbbrCode: 0x19 + Values: + - Value: 0x1 + BlockData: [ 0x51 ] + - Value: 0x18E + - Value: 0x1 + - Value: 0x1E + - Value: 0x248 + - AbbrCode: 0x0 + - AbbrCode: 0x6 + Values: + - Value: 0x174 + - Value: 0x5 + - Value: 0x4 + - AbbrCode: 0x16 + Values: + - Value: 0x205 + - AbbrCode: 0x0 + debug_line: + - Length: 249 + Version: 4 + PrologueLength: 42 + MinInstLength: 1 + MaxOpsPerInst: 1 + DefaultIsStmt: 1 + LineBase: 251 + LineRange: 14 + OpcodeBase: 13 + StandardOpcodeLengths: [ 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 ] + Files: + - Name: stmt_seq_macho.cpp + DirIdx: 0 + ModTime: 0 + Length: 0 + Opcodes: + - Opcode: DW_LNS_set_column + Data: 10 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 0 + - Opcode: 0x14 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 3 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x4A + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_set_column + Data: 14 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 8 + - Opcode: 0x19 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 5 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x4A + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_set_column + Data: 14 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 16 + - Opcode: DW_LNS_advance_line + SData: 11 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_set_column + Data: 5 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x4A + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_set_column + Data: 14 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 24 + - Opcode: DW_LNS_advance_line + SData: 16 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_set_column + Data: 5 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x4A + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_set_column + Data: 20 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 32 + - Opcode: DW_LNS_advance_line + SData: 20 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_set_column + Data: 5 + - Opcode: 0x4B + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 40 + - Opcode: DW_LNS_advance_line + SData: 32 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_set_column + Data: 12 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: 0xF4 + Data: 0 + - Opcode: 0xBB + Data: 0 + - Opcode: DW_LNS_set_column + Data: 9 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x82 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 12 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x4B + Data: 0 + - Opcode: 0xBB + Data: 0 + - Opcode: DW_LNS_set_column + Data: 9 + - Opcode: 0x81 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 18 + - Opcode: 0x4C + Data: 0 + - Opcode: DW_LNS_set_column + Data: 9 + - Opcode: 0xF1 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 5 + - Opcode: DW_LNS_set_epilogue_begin + Data: 0 + - Opcode: 0x4C + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_set_column + Data: 85 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 140 + - Opcode: DW_LNS_advance_line + SData: 29 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 + - Opcode: DW_LNS_set_column + Data: 86 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 144 + - Opcode: DW_LNS_advance_line + SData: 29 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_advance_pc + Data: 4 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 +...