diff --git a/lldb/source/Symbol/SymbolContext.cpp b/lldb/source/Symbol/SymbolContext.cpp --- a/lldb/source/Symbol/SymbolContext.cpp +++ b/lldb/source/Symbol/SymbolContext.cpp @@ -128,13 +128,14 @@ s->Printf(" + %" PRIu64, inlined_function_offset); } } - if (show_inline_callsite_line_info) { - const Declaration &call_site = inlined_block_info->GetCallSite(); - if (call_site.IsValid()) { - s->PutCString(" at "); - call_site.DumpStopContext(s, show_fullpaths); - } - } else if (line_entry.IsValid()) { + // "line_entry" will always be valid as GetParentOfInlinedScope(...) will + // fill it in correctly with the calling file and line. Previous code + // was extracting the calling file and line from inlined_block_info and + // using it right away which is not correct. On the first call to this + // function "line_entry" will contain the actual line table entry. On + // susequent calls "line_entry" will contain the calling file and line + // from the previous inline info. + if (line_entry.IsValid()) { s->PutCString(" at "); line_entry.DumpStopContext(s, show_fullpaths); } @@ -145,7 +146,8 @@ const bool show_function_name = true; return inline_parent_sc.DumpStopContext( s, exe_scope, inline_parent_addr, show_fullpaths, show_module, - show_inlined_frames, show_function_arguments, show_function_name); + show_inlined_frames, show_function_arguments, show_function_name, + inlined_block_info); } } else { if (line_entry.IsValid()) { diff --git a/lldb/test/Shell/Commands/command-image-lookup.yaml b/lldb/test/Shell/Commands/command-image-lookup.yaml new file mode 100644 --- /dev/null +++ b/lldb/test/Shell/Commands/command-image-lookup.yaml @@ -0,0 +1,810 @@ +# RUN: yaml2obj %s -o %T/a.out +# RUN: %lldb %T/a.out -o "image lookup --verbose --address 0x0000000100003fa1" -o exit | FileCheck %s --check-prefix=NOINLINE +# RUN: %lldb %T/a.out -o "image lookup --verbose --address 0x0000000100003fa2" -o exit | FileCheck %s --check-prefix=INLINE_1 +# RUN: %lldb %T/a.out -o "image lookup --verbose --address 0x0000000100003fa8" -o exit | FileCheck %s --check-prefix=INLINE_2 + +# NOINLINE: Summary: a.out`main + 33 at main.cpp:10 +# NOINLINE-NEXT: Module: file = + +# INLINE_1: Summary: a.out`main + 34 [inlined] squares(int, int) at main.cpp:7:16 +# INLINE_1-NEXT: a.out`main + 34 at main.cpp:11 +# INLINE_1-NEXT: Module: file = + +# INLINE_2: Summary: a.out`main + 40 [inlined] square(int) at main.cpp:3:9 +# INLINE_2-NEXT: a.out`main + 40 [inlined] squares(int, int) + 6 at main.cpp:7 +# INLINE_2-NEXT: a.out`main + 34 at main.cpp:11 +# INLINE_2-NEXT: Module: file = + + +--- !mach-o +FileHeader: + magic: 0xFEEDFACF + cputype: 0x1000007 + cpusubtype: 0x3 + filetype: 0xA + ncmds: 7 + sizeofcmds: 1400 + flags: 0x0 + reserved: 0x0 +LoadCommands: + - cmd: LC_UUID + cmdsize: 24 + uuid: E476BFB9-CC5C-34BC-B968-BF996B298060 + - cmd: LC_BUILD_VERSION + cmdsize: 24 + platform: 1 + minos: 659200 + sdk: 721152 + ntools: 0 + - cmd: LC_SYMTAB + cmdsize: 24 + symoff: 4096 + nsyms: 4 + stroff: 4160 + strsize: 54 + - cmd: LC_SEGMENT_64 + cmdsize: 72 + segname: __PAGEZERO + vmaddr: 0 + vmsize: 4294967296 + fileoff: 0 + filesize: 0 + maxprot: 0 + initprot: 0 + nsects: 0 + flags: 0 + - cmd: LC_SEGMENT_64 + cmdsize: 232 + segname: __TEXT + vmaddr: 4294967296 + vmsize: 16384 + fileoff: 0 + filesize: 0 + maxprot: 5 + initprot: 5 + nsects: 2 + flags: 0 + Sections: + - sectname: __text + segname: __TEXT + addr: 0x100003F50 + size: 100 + offset: 0x0 + align: 4 + reloff: 0x0 + nreloc: 0 + flags: 0x80000400 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: CFFAEDFE07000001030000000A000000070000007805000000000000000000001B00000018000000E476BFB9CC5C34BCB968BF996B298060320000001800000001000000000F0A0000010B00000000000200000018000000001000000400000040100000 + - sectname: __unwind_info + segname: __TEXT + addr: 0x100003FB4 + size: 72 + offset: 0x0 + align: 2 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: CFFAEDFE07000001030000000A000000070000007805000000000000000000001B00000018000000E476BFB9CC5C34BCB968BF996B298060320000001800000001000000000F0A00 + - cmd: LC_SEGMENT_64 + cmdsize: 72 + segname: __LINKEDIT + vmaddr: 4294983680 + vmsize: 4096 + fileoff: 4096 + filesize: 118 + maxprot: 1 + initprot: 1 + nsects: 0 + flags: 0 + - cmd: LC_SEGMENT_64 + cmdsize: 952 + segname: __DWARF + vmaddr: 4294987776 + vmsize: 4096 + fileoff: 8192 + filesize: 1530 + maxprot: 7 + initprot: 3 + nsects: 11 + flags: 0 + Sections: + - sectname: __debug_line + segname: __DWARF + addr: 0x100005000 + size: 130 + offset: 0x2000 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_pubnames + segname: __DWARF + addr: 0x100005082 + size: 82 + offset: 0x2082 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_pubtypes + segname: __DWARF + addr: 0x1000050D4 + size: 35 + offset: 0x20D4 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_aranges + segname: __DWARF + addr: 0x1000050F7 + size: 64 + offset: 0x20F7 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_info + segname: __DWARF + addr: 0x100005137 + size: 379 + offset: 0x2137 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_abbrev + segname: __DWARF + addr: 0x1000052B2 + size: 173 + offset: 0x22B2 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __debug_str + segname: __DWARF + addr: 0x10000535F + size: 285 + offset: 0x235F + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + - sectname: __apple_names + segname: __DWARF + addr: 0x10000547C + size: 196 + offset: 0x247C + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 485341480100000005000000050000000C0000000000000001000000010006000000000001000000FFFFFFFF04000000FFFFFFFF4B79AFF92EECB8236A7F9A7C492D3CA816EA5E1C5C000000700000008800000098000000AC000000F000000002000000710000001C01000000000000D800000003000000320000009400000040010000000000000701000001000000D900000000000000FD00000002000000710000001C01000000000000E30000000300000032000000940000004001000000000000 + - sectname: __apple_namespac + segname: __DWARF + addr: 0x100005540 + size: 36 + offset: 0x2540 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 485341480100000001000000000000000C000000000000000100000001000600FFFFFFFF + - sectname: __apple_types + segname: __DWARF + addr: 0x100005564 + size: 114 + offset: 0x2564 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 48534148010000000200000002000000180000000000000004000000010006000300050005000B000600060000000000010000003080880B6320957C440000005B000000EC000000010000006A000000240000A4283A0C0000000018010000010000006E01000024000057D77B9300000000 + - sectname: __apple_objc + segname: __DWARF + addr: 0x1000055D6 + size: 36 + offset: 0x25D6 + align: 0 + reloff: 0x0 + nreloc: 0 + flags: 0x0 + reserved1: 0x0 + reserved2: 0x0 + reserved3: 0x0 + content: 485341480100000001000000000000000C000000000000000100000001000600FFFFFFFF +LinkEditData: + NameList: + - n_strx: 2 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 4294983504 + - n_strx: 14 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 4294983520 + - n_strx: 28 + n_type: 0xF + n_sect: 1 + n_desc: 16 + n_value: 4294967296 + - n_strx: 48 + n_type: 0xF + n_sect: 1 + n_desc: 0 + n_value: 4294983552 + StringTable: + - '' + - '' + - __Z6squarei + - __Z7squaresii + - __mh_execute_header + - _main +DWARF: + debug_str: + - '' + - 'Apple clang version 12.0.0 (clang-1200.0.32.29)' + - '../main.cpp' + - '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk' + - MacOSX11.1.sdk + - '/Users/gclayton/Documents/src/args/build' + - _Z6squarei + - square + - x + - int + - _Z7squaresii + - squares + - y + - main + - argc + - argv + - s + - char + 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_APPLE_sdk + 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_low_pc + Form: DW_FORM_addr + - Attribute: DW_AT_high_pc + Form: DW_FORM_data4 + - Code: 0x2 + 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_frame_base + Form: DW_FORM_exprloc + - Attribute: DW_AT_abstract_origin + Form: DW_FORM_ref_addr + - Code: 0x3 + Tag: DW_TAG_formal_parameter + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_location + Form: DW_FORM_exprloc + - Attribute: DW_AT_abstract_origin + Form: DW_FORM_ref_addr + - Code: 0x4 + Tag: DW_TAG_subprogram + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_linkage_name + Form: DW_FORM_strp + - 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_ref_addr + - Attribute: DW_AT_external + Form: DW_FORM_flag_present + - Attribute: DW_AT_inline + Form: DW_FORM_data1 + - Code: 0x5 + 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_ref_addr + - 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_inlined_subroutine + Children: DW_CHILDREN_yes + Attributes: + - Attribute: DW_AT_abstract_origin + Form: DW_FORM_ref_addr + - Attribute: DW_AT_low_pc + Form: DW_FORM_addr + - Attribute: DW_AT_high_pc + Form: DW_FORM_data4 + - Attribute: DW_AT_call_file + Form: DW_FORM_data1 + - Attribute: DW_AT_call_line + Form: DW_FORM_data1 + - Attribute: DW_AT_call_column + 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_frame_base + 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_ref_addr + - Attribute: DW_AT_external + Form: DW_FORM_flag_present + - Code: 0x9 + 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_ref_addr + - Code: 0xA + 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_ref_addr + - Code: 0xB + Tag: DW_TAG_pointer_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref_addr + - Code: 0xC + Tag: DW_TAG_const_type + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_type + Form: DW_FORM_ref_addr + debug_aranges: + - Length: 0x3C + Version: 2 + CuOffset: 0x0 + AddressSize: 0x8 + Descriptors: + - Address: 0x100003F50 + Length: 0x29 + - Address: 0x100003F80 + Length: 0x34 + debug_pubnames: + Length: 0x4E + Version: 2 + UnitOffset: 0 + UnitSize: 379 + Entries: + - DieOffset: 0x32 + Name: _Z6squarei + - DieOffset: 0x32 + Name: square + - DieOffset: 0x71 + Name: _Z7squaresii + - DieOffset: 0x71 + Name: squares + - DieOffset: 0xD9 + Name: main + debug_pubtypes: + Length: 0x1F + Version: 2 + UnitOffset: 0 + UnitSize: 379 + Entries: + - DieOffset: 0x6A + Name: int + - DieOffset: 0x16E + Name: char + debug_info: + - Length: 0x177 + Version: 4 + AbbrevTableID: 0 + AbbrOffset: 0x0 + AddrSize: 8 + Entries: + - AbbrCode: 0x1 + Values: + - Value: 0x1 + - Value: 0x4 + - Value: 0x31 + - Value: 0x3D + - Value: 0xA0 + - Value: 0x0 + - Value: 0xAF + - Value: 0x100003F50 + - Value: 0x64 + - AbbrCode: 0x2 + Values: + - Value: 0x100003F50 + - Value: 0x10 + - Value: 0x1 + BlockData: [ 0x56 ] + - Value: 0x4E + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x7C ] + - Value: 0x5E + - AbbrCode: 0x0 + - AbbrCode: 0x4 + Values: + - Value: 0xD8 + - Value: 0xE3 + - Value: 0x1 + - Value: 0x2 + - Value: 0x6A + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0x5 + Values: + - Value: 0xEA + - Value: 0x1 + - Value: 0x2 + - Value: 0x6A + - AbbrCode: 0x0 + - AbbrCode: 0x6 + Values: + - Value: 0xEC + - Value: 0x5 + - Value: 0x4 + - AbbrCode: 0x2 + Values: + - Value: 0x100003F60 + - Value: 0x19 + - Value: 0x1 + BlockData: [ 0x56 ] + - Value: 0xB2 + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x78 ] + - Value: 0xC2 + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x74 ] + - Value: 0xCD + - AbbrCode: 0x7 + Values: + - Value: 0x4E + - Value: 0x100003F70 + - Value: 0x7 + - Value: 0x1 + - Value: 0x7 + - Value: 0x9 + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x7C ] + - Value: 0x5E + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0x4 + Values: + - Value: 0xF0 + - Value: 0xFD + - Value: 0x1 + - Value: 0x6 + - Value: 0x6A + - Value: 0x1 + - Value: 0x1 + - AbbrCode: 0x5 + Values: + - Value: 0xEA + - Value: 0x1 + - Value: 0x6 + - Value: 0x6A + - AbbrCode: 0x5 + Values: + - Value: 0x105 + - Value: 0x1 + - Value: 0x6 + - Value: 0x6A + - AbbrCode: 0x0 + - AbbrCode: 0x8 + Values: + - Value: 0x100003F80 + - Value: 0x34 + - Value: 0x1 + BlockData: [ 0x56 ] + - Value: 0x107 + - Value: 0x1 + - Value: 0xA + - Value: 0x6A + - Value: 0x1 + - AbbrCode: 0x9 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x6C ] + - Value: 0x10C + - Value: 0x1 + - Value: 0xA + - Value: 0x6A + - AbbrCode: 0x9 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x60 ] + - Value: 0x111 + - Value: 0x1 + - Value: 0xA + - Value: 0x15F + - AbbrCode: 0xA + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x5C ] + - Value: 0x116 + - Value: 0x1 + - Value: 0xB + - Value: 0x175 + - AbbrCode: 0x7 + Values: + - Value: 0xB2 + - Value: 0x100003FA2 + - Value: 0xD + - Value: 0x1 + - Value: 0xB + - Value: 0x10 + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x78 ] + - Value: 0xC2 + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x74 ] + - Value: 0xCD + - AbbrCode: 0x7 + Values: + - Value: 0x4E + - Value: 0x100003FA8 + - Value: 0x7 + - Value: 0x1 + - Value: 0x7 + - Value: 0x9 + - AbbrCode: 0x3 + Values: + - Value: 0x2 + BlockData: [ 0x91, 0x7C ] + - Value: 0x5E + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0x0 + - AbbrCode: 0xB + Values: + - Value: 0x164 + - AbbrCode: 0xB + Values: + - Value: 0x169 + - AbbrCode: 0xC + Values: + - Value: 0x16E + - AbbrCode: 0x6 + Values: + - Value: 0x118 + - Value: 0x6 + - Value: 0x1 + - AbbrCode: 0xC + Values: + - Value: 0x6A + - AbbrCode: 0x0 + debug_line: + - Length: 126 + Version: 4 + PrologueLength: 35 + 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 ] + IncludeDirs: + - .. + Files: + - Name: main.cpp + DirIdx: 1 + ModTime: 0 + Length: 0 + Opcodes: + - Opcode: DW_LNS_extended_op + ExtLen: 9 + SubOpcode: DW_LNE_set_address + Data: 4294983504 + - Opcode: 0x13 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 9 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: 0x75 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 10 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x3C + Data: 0 + - Opcode: DW_LNS_set_column + Data: 2 + - Opcode: 0x4A + Data: 0 + - Opcode: DW_LNS_set_column + Data: 0 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x31 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 16 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: 0x9F + Data: 0 + - Opcode: DW_LNS_set_column + Data: 9 + - Opcode: 0x62 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 10 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x3C + Data: 0 + - Opcode: DW_LNS_set_column + Data: 2 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x4E + Data: 0 + - Opcode: DW_LNS_advance_pc + Data: 2 + - 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: 4294983552 + - Opcode: DW_LNS_advance_line + SData: 9 + Data: 0 + - Opcode: DW_LNS_copy + Data: 0 + - Opcode: DW_LNS_set_column + Data: 16 + - Opcode: DW_LNS_set_prologue_end + Data: 0 + - Opcode: DW_LNS_const_add_pc + Data: 0 + - Opcode: 0xFD + Data: 0 + - Opcode: DW_LNS_set_column + Data: 9 + - Opcode: 0x62 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 10 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x3C + Data: 0 + - Opcode: DW_LNS_set_column + Data: 12 + - Opcode: DW_LNS_negate_stmt + Data: 0 + - Opcode: 0x52 + Data: 0 + - Opcode: DW_LNS_set_column + Data: 2 + - Opcode: 0x3D + Data: 0 + - Opcode: DW_LNS_advance_pc + Data: 2 + - Opcode: DW_LNS_extended_op + ExtLen: 1 + SubOpcode: DW_LNE_end_sequence + Data: 0 +...