Higuoxing created this revision. Higuoxing added reviewers: jhenderson, grimar, MaskRay. Herald added subscribers: llvm-commits, lldb-commits, cmtice, hiraditya, aprantl, emaste. Herald added a reviewer: espindola. Herald added a reviewer: alexshap. Herald added a reviewer: rupprecht. Herald added projects: LLDB, LLVM. Higuoxing added a parent revision: D82621: [DWARFYAML][debug_info] Teach yaml2obj emit correct DWARF64 unit header.. Higuoxing edited the summary of this revision.
'InitialLength' is replaced with 'Format' (DWARF32 by default) and 'Length' in this patch. Besides, test cases for DWARFv4 and DWARFv5, DWARF32 and DWARF64 is added. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D82622 Files: lldb/test/API/functionalities/source-map/a.yaml lldb/unittests/Expression/DWARFExpressionTest.cpp lldb/unittests/Symbol/Inputs/inlined-functions.yaml lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp llvm/include/llvm/ObjectYAML/DWARFYAML.h llvm/lib/ObjectYAML/DWARFEmitter.cpp llvm/lib/ObjectYAML/DWARFVisitor.cpp llvm/lib/ObjectYAML/DWARFYAML.cpp llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml llvm/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml llvm/test/tools/llvm-dwarfdump/X86/verify_overlapping_cu_ranges.yaml llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml llvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml llvm/tools/obj2yaml/dwarf2yaml.cpp llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp
Index: llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp =================================================================== --- llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp +++ llvm/unittests/DebugInfo/GSYM/GSYMTest.cpp @@ -1437,8 +1437,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 52 + - Length: 52 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -1517,8 +1516,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_data4 debug_info: - - Length: - TotalLength: 44 + - Length: 44 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -1617,8 +1615,7 @@ - Attribute: DW_AT_artificial Form: DW_FORM_flag_present debug_info: - - Length: - TotalLength: 68 + - Length: 68 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -1722,8 +1719,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_data4 debug_info: - - Length: - TotalLength: 78 + - Length: 78 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -1836,8 +1832,7 @@ - Attribute: DW_AT_call_line Form: DW_FORM_data4 debug_info: - - Length: - TotalLength: 74 + - Length: 74 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2092,8 +2087,7 @@ - Attribute: DW_AT_decl_line Form: DW_FORM_data1 debug_info: - - Length: - TotalLength: 103 + - Length: 103 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2299,7 +2293,6 @@ // // 0x0000004e: NULL - StringRef yamldata = R"( debug_str: - '' @@ -2342,8 +2335,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 75 + - Length: 75 Version: 4 AbbrOffset: 0 AddrSize: 4 @@ -2485,8 +2477,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 103 + - Length: 103 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp =================================================================== --- llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp +++ llvm/unittests/DebugInfo/DWARF/DWARFDieTest.cpp @@ -34,8 +34,7 @@ - Attribute: DW_AT_call_data_location Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 0 + - Length: 0 Version: 5 UnitType: DW_UT_compile AbbrOffset: 0 Index: llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp =================================================================== --- llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp +++ llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp @@ -1368,8 +1368,7 @@ " Children: DW_CHILDREN_yes\n" " Attributes:\n" "debug_info:\n" - " - Length:\n" - " TotalLength: 0\n" + " - Length: 0\n" " Version: 4\n" " AbbrOffset: 0\n" " AddrSize: 8\n" @@ -1902,8 +1901,7 @@ - Attribute: DW_AT_type Form: DW_FORM_ref4 debug_info: - - Length: - TotalLength: 22 + - Length: 22 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -1951,8 +1949,7 @@ - Attribute: DW_AT_type Form: DW_FORM_ref_addr debug_info: - - Length: - TotalLength: 22 + - Length: 22 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -1992,8 +1989,7 @@ - Attribute: DW_AT_ranges Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2030,8 +2026,7 @@ - Attribute: DW_AT_ranges Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 17 + - Length: 17 Version: 5 UnitType: DW_UT_compile AbbrOffset: 0 @@ -2068,8 +2063,7 @@ - Attribute: DW_AT_stmt_list Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2103,8 +2097,7 @@ - Attribute: DW_AT_name Form: DW_FORM_strp debug_info: - - Length: - TotalLength: 12 + - Length: 12 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2145,8 +2138,7 @@ - Attribute: DW_AT_type Form: DW_FORM_ref_addr debug_info: - - Length: - TotalLength: 22 + - Length: 22 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2187,8 +2179,7 @@ - Attribute: DW_AT_stmt_list Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2256,8 +2247,7 @@ - Attribute: DW_AT_stmt_list Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2327,8 +2317,7 @@ - Attribute: DW_AT_stmt_list Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2399,8 +2388,7 @@ - Attribute: DW_AT_stmt_list Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2476,8 +2464,7 @@ - Attribute: DW_AT_stmt_list Form: DW_FORM_sec_offset debug_info: - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2486,8 +2473,7 @@ Values: - Value: 0x0000000000000001 - Value: 0x0000000000000000 - - Length: - TotalLength: 16 + - Length: 16 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2603,8 +2589,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 46 + - Length: 46 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2663,8 +2648,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 52 + - Length: 52 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2721,8 +2705,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 55 + - Length: 55 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2788,8 +2771,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 85 + - Length: 85 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2850,8 +2832,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 34 + - Length: 34 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2907,8 +2888,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 71 + - Length: 71 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -2970,8 +2950,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 73 + - Length: 73 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/tools/obj2yaml/dwarf2yaml.cpp =================================================================== --- llvm/tools/obj2yaml/dwarf2yaml.cpp +++ llvm/tools/obj2yaml/dwarf2yaml.cpp @@ -165,7 +165,8 @@ void dumpDebugInfo(DWARFContext &DCtx, DWARFYAML::Data &Y) { for (const auto &CU : DCtx.compile_units()) { DWARFYAML::Unit NewUnit; - NewUnit.Length.setLength(CU->getLength()); + NewUnit.Format = CU->getFormat(); + NewUnit.Length = CU->getLength(); NewUnit.Version = CU->getVersion(); if(NewUnit.Version >= 5) NewUnit.Type = (dwarf::UnitType)CU->getUnitType(); Index: llvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml =================================================================== --- llvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml +++ llvm/test/tools/yaml2obj/ELF/DWARF/debug-info.yaml @@ -200,8 +200,7 @@ - Attribute: 0x01 Form: DW_FORM_addrx4 ## 0x2c debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -262,8 +261,7 @@ - Value: 0x1234 ## DW_FORM_addrx2 - Value: 0x123456 ## DW_FORM_addrx3 (unimplemented) - Value: 0x12345678 ## DW_FORM_addrx4 - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 ## Test another unit type. UnitType: DW_UT_compile @@ -272,8 +270,7 @@ Entries: - AbbrCode: 0 Values: [] - - Length: - TotalLength: 0x5678 + - Length: 0x5678 ## Test DWARFv4 Version: 4 AbbrOffset: 0x5678 @@ -440,8 +437,7 @@ Children: DW_CHILDREN_no Attributes: [] debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -470,8 +466,7 @@ Children: DW_CHILDREN_no Attributes: [] debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -539,8 +534,7 @@ Children: DW_CHILDREN_no Attributes: [] debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -568,8 +562,7 @@ Machine: EM_X86_64 DWARF: debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -620,8 +613,7 @@ - Attribute: DW_AT_high_pc Form: DW_FORM_data4 debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -659,8 +651,7 @@ Machine: EM_X86_64 DWARF: debug_info: - - Length: - TotalLength: 0x1234 + - Length: 0x1234 Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -695,9 +686,8 @@ Machine: EM_X86_64 DWARF: debug_info: - - Length: - TotalLength: 0xffffffff - TotalLength64: 0x0c + - Format: DWARF64 + Length: 0x0c Version: 5 UnitType: DW_UT_type AbbrOffset: 0x1234 @@ -727,9 +717,8 @@ Machine: EM_X86_64 DWARF: debug_info: - - Length: - TotalLength: 0xffffffff - TotalLength64: 0x0c + - Format: DWARF64 + Length: 0x0c Version: 4 AbbrOffset: 0x1234 AddrSize: 8 Index: llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml =================================================================== --- llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml +++ llvm/test/tools/llvm-objcopy/MachO/Inputs/strip-all-with-dwarf.yaml @@ -391,8 +391,7 @@ - Attribute: DW_AT_external Form: DW_FORM_flag_present debug_info: - - Length: - TotalLength: 113 + - Length: 113 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml =================================================================== --- llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml +++ llvm/test/tools/llvm-gsymutil/X86/mach-dwarf.yaml @@ -574,8 +574,7 @@ - DieOffset: 0x000000D8 Name: char debug_info: - - Length: - TotalLength: 220 + - Length: 220 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml =================================================================== --- llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml +++ llvm/test/tools/llvm-gsymutil/ARM_AArch64/fat-macho-dwarf.yaml @@ -407,8 +407,7 @@ - DieOffset: 0x0000006F Name: char debug_info: - - Length: - TotalLength: 115 + - Length: 115 Version: 4 AbbrOffset: 0 AddrSize: 4 @@ -886,8 +885,7 @@ - DieOffset: 0x00000076 Name: char debug_info: - - Length: - TotalLength: 122 + - Length: 122 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/test/tools/llvm-dwarfdump/X86/verify_overlapping_cu_ranges.yaml =================================================================== --- llvm/test/tools/llvm-dwarfdump/X86/verify_overlapping_cu_ranges.yaml +++ llvm/test/tools/llvm-dwarfdump/X86/verify_overlapping_cu_ranges.yaml @@ -223,8 +223,7 @@ - LowOffset: 0x0000000000001000 HighOffset: 0x0000000000002000 debug_info: - - Length: - TotalLength: 99 + - Length: 99 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml =================================================================== --- llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml +++ llvm/test/ObjectYAML/MachO/DWARF5-debug_info.yaml @@ -1,4 +1,10 @@ -# RUN: yaml2obj %s | obj2yaml | FileCheck %s +## This file contains test cases for generating .debug_info +## section in object files from the DWARF entry of Mach-O YAML inputs. + +## a) Test that yaml2obj emits a DWARF32 .debug_info sections and obj2yaml +## converts it back. + +# RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s --check-prefix=DWARF32 --- !mach-o FileHeader: @@ -384,8 +390,7 @@ - Address: 0x0000000100000F50 Length: 52 debug_info: - - Length: - TotalLength: 118 + - Length: 118 Version: 5 UnitType: DW_UT_compile AbbrOffset: 0 @@ -507,69 +512,190 @@ ... -#CHECK: DWARF: -#CHECK: debug_info: -#CHECK: - Length: -#CHECK: TotalLength: 118 -#CHECK: Version: 5 -#CHECK: UnitType: DW_UT_compile -#CHECK: AbbrOffset: 0 -#CHECK: AddrSize: 8 -#CHECK: Entries: -#CHECK: - AbbrCode: 0x00000001 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x000000000000000C -#CHECK: - Value: 0x0000000000000038 -#CHECK: - Value: 0x0000000000000000 -#CHECK: - Value: 0x0000000000000046 -#CHECK: - Value: 0x0000000100000F50 -#CHECK: - Value: 0x0000000000000034 -#CHECK: - AbbrCode: 0x00000002 -#CHECK: Values: -#CHECK: - Value: 0x0000000100000F50 -#CHECK: - Value: 0x0000000000000034 -#CHECK: - Value: 0x0000000000000001 -#CHECK: BlockData: [ 0x56 ] -#CHECK: - Value: 0x0000000000000076 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000003 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000060 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - AbbrCode: 0x00000003 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000002 -#CHECK: BlockData: [ 0x91, 0x78 ] -#CHECK: - Value: 0x000000000000007B -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000003 -#CHECK: - Value: 0x0000000000000060 -#CHECK: - AbbrCode: 0x00000003 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000002 -#CHECK: BlockData: [ 0x91, 0x70 ] -#CHECK: - Value: 0x0000000000000080 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000003 -#CHECK: - Value: 0x0000000000000067 -#CHECK: - AbbrCode: 0x00000000 -#CHECK: Values: -#CHECK: - AbbrCode: 0x00000004 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000085 -#CHECK: - Value: 0x0000000000000005 -#CHECK: - Value: 0x0000000000000004 -#CHECK: - AbbrCode: 0x00000005 -#CHECK: Values: -#CHECK: - Value: 0x000000000000006C -#CHECK: - AbbrCode: 0x00000005 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000071 -#CHECK: - AbbrCode: 0x00000004 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000089 -#CHECK: - Value: 0x0000000000000006 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - AbbrCode: 0x00000000 -#CHECK: Values: +# DWARF32: debug_info: +# DWARF32-NEXT: - Length: 118 +# DWARF32-NEXT: Version: 5 +# DWARF32-NEXT: UnitType: DW_UT_compile +# DWARF32-NEXT: AbbrOffset: 0 +# DWARF32-NEXT: AddrSize: 8 +# DWARF32-NEXT: Entries: +# DWARF32-NEXT: - AbbrCode: 0x00000001 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x000000000000000C +# DWARF32-NEXT: - Value: 0x0000000000000038 +# DWARF32-NEXT: - Value: 0x0000000000000000 +# DWARF32-NEXT: - Value: 0x0000000000000046 +# DWARF32-NEXT: - Value: 0x0000000100000F50 +# DWARF32-NEXT: - Value: 0x0000000000000034 +# DWARF32-NEXT: - AbbrCode: 0x00000002 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000100000F50 +# DWARF32-NEXT: - Value: 0x0000000000000034 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: BlockData: [ 0x56 ] +# DWARF32-NEXT: - Value: 0x0000000000000076 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000003 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000060 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - AbbrCode: 0x00000003 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000002 +# DWARF32-NEXT: BlockData: [ 0x91, 0x78 ] +# DWARF32-NEXT: - Value: 0x000000000000007B +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000003 +# DWARF32-NEXT: - Value: 0x0000000000000060 +# DWARF32-NEXT: - AbbrCode: 0x00000003 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000002 +# DWARF32-NEXT: BlockData: [ 0x91, 0x70 ] +# DWARF32-NEXT: - Value: 0x0000000000000080 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000003 +# DWARF32-NEXT: - Value: 0x0000000000000067 +# DWARF32-NEXT: - AbbrCode: 0x00000000 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - AbbrCode: 0x00000004 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000085 +# DWARF32-NEXT: - Value: 0x0000000000000005 +# DWARF32-NEXT: - Value: 0x0000000000000004 +# DWARF32-NEXT: - AbbrCode: 0x00000005 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x000000000000006C +# DWARF32-NEXT: - AbbrCode: 0x00000005 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000071 +# DWARF32-NEXT: - AbbrCode: 0x00000004 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000089 +# DWARF32-NEXT: - Value: 0x0000000000000006 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - AbbrCode: 0x00000000 +# DWARF32-NEXT: Values: + +## b) Test that yaml2obj emits a correct unit header and obj2yaml is able to convert it back. + +## Test DWARF32 unit header. + +# RUN: yaml2obj --docnum=2 -DFORMAT=DWARF32 %s -o %t2.dwarf32.o +# RUN: llvm-readobj --hex-dump=__debug_info %t2.dwarf32.o | \ +# RUN: FileCheck %s --check-prefix=DWARF32-HEADER + +# DWARF32-HEADER: Hex dump of section '__debug_info': +# DWARF32-HEADER-NEXT: 0x00000000 0c000000 05000108 00000000 01341200 .............4.. +## ^------- unit_header (4-byte) +## ^--- version (2-byte) +## ^- unit_type (1-byte) +## ^- address_size (1-byte) +## ^------- deubug_abbrev_offset (4-byte) +# DWARF32-HEADER-NEXT: 0x00000010 00 . + +# RUN: obj2yaml %t2.dwarf32.o | FileCheck %s --check-prefix=DWARF32-YAML + +# DWARF32-YAML: debug_info: +# DWARF32-YAML-NEXT: - Length: 12 +# DWARF32-YAML-NEXT: Version: 5 +# DWARF32-YAML-NEXT: UnitType: DW_UT_compile +# DWARF32-YAML-NEXT: AbbrOffset: 0x0000000000000000 +# DWARF32-YAML-NEXT: AddrSize: 8 +# DWARF32-YAML-NEXT: Entries: +# DWARF32-YAML-NEXT: - AbbrCode: 0x00000001 +# DWARF32-YAML-NEXT: Values: +# DWARF32-YAML-NEXT: - Value: 0x0000000000001234 + +--- !mach-o +FileHeader: + magic: 0xFEEDFACF + cputype: 0x01000007 + cpusubtype: 0x00000003 + filetype: 0x0000000A + ncmds: 1 + sizeofcmds: 232 + flags: 0x00000000 + reserved: 0x00000000 +LoadCommands: + - cmd: LC_SEGMENT_64 + cmdsize: 232 + segname: __DWARF + vmaddr: 0x00 + vmsize: 0x00 + fileoff: 0x00 + filesize: 0x00 + maxprot: 0 + initprot: 0 + nsects: 2 + flags: 0 + Sections: + - sectname: __debug_abbrev + segname: __DWARF + addr: 0x00 + size: 12 + offset: 528 + align: 0 + reloff: 0x00000000 + nreloc: 0 + flags: 0x00000000 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 + - sectname: __debug_info + segname: __DWARF + addr: 0x00 + size: 0xffff + offset: 1070 + align: 0 + reloff: 0x00000000 + nreloc: 0 + flags: 0x00000000 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 +DWARF: + debug_abbrev: + - Code: 1 + Tag: DW_TAG_compile_unit + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_producer + Form: DW_FORM_strp + debug_info: + - Format: [[FORMAT]] + Length: 12 + Version: 5 + UnitType: DW_UT_compile + AbbrOffset: 0 + AddrSize: 8 + Entries: + - AbbrCode: 1 + Values: + - Value: 0x1234 + +## Test DWARF64 unit header. + +# RUN: yaml2obj --docnum=2 -DFORMAT=DWARF64 %s -o %t2.dwarf64.o +# RUN: llvm-readobj --hex-dump=__debug_info %t2.dwarf64.o | \ +# RUN: FileCheck %s --check-prefix=DWARF64-HEADER + +# DWARF64-HEADER: Hex dump of section '__debug_info': +# DWARF64-HEADER-NEXT: 0x00000000 ffffffff 0c000000 00000000 05000108 ................ +## ^------------------------- unit_length (12-byte) +## ^--- version (2-byte) +## ^- unit_type (1-byte) +## ^- address_size (1-byte) +# DWARF64-HEADER-NEXT: 0x00000010 00000000 00000000 01341200 00000000 .........4...... +## ^---------------- debug_abbrev_offset (8-byte) +# DWARF64-HEADER-NEXT: 0x00000020 00 . + +# RUN: obj2yaml %t2.dwarf64.o | FileCheck %s --check-prefix=DWARF64-YAML + +# DWARF64-YAML: debug_info: +# DWARF64-YAML-NEXT: - Format: DWARF64 +# DWARF64-YAML-NEXT: Length: 12 +# DWARF64-YAML-NEXT: Version: 5 +# DWARF64-YAML-NEXT: UnitType: DW_UT_compile +# DWARF64-YAML-NEXT: AbbrOffset: 0x0000000000000000 +# DWARF64-YAML-NEXT: AddrSize: 8 Index: llvm/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml =================================================================== --- llvm/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml +++ llvm/test/ObjectYAML/MachO/DWARF2-AddrSize8-FormValues.yaml @@ -334,8 +334,7 @@ - Attribute: 0x201A Form: DW_FORM_addr debug_info: - - Length: - TotalLength: 168 + - Length: 168 Version: 2 AbbrOffset: 0 AddrSize: 8 @@ -416,8 +415,7 @@ ... #CHECK: debug_info: -#CHECK: - Length: -#CHECK: TotalLength: 168 +#CHECK: - Length: 168 #CHECK: Version: 2 #CHECK: AbbrOffset: 0 #CHECK: AddrSize: 8 Index: llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml =================================================================== --- llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml +++ llvm/test/ObjectYAML/MachO/DWARF-debug_ranges.yaml @@ -213,8 +213,7 @@ - LowOffset: 0x0000000000000000 HighOffset: 0x0000000000001000 debug_info: - - Length: - TotalLength: 82 + - Length: 82 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml =================================================================== --- llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml +++ llvm/test/ObjectYAML/MachO/DWARF-debug_line.yaml @@ -423,8 +423,7 @@ - DieOffset: 0x00000071 Name: char debug_info: - - Length: - TotalLength: 117 + - Length: 117 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml =================================================================== --- llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml +++ llvm/test/ObjectYAML/MachO/DWARF-debug_info.yaml @@ -1,4 +1,10 @@ -# RUN: yaml2obj %s | obj2yaml | FileCheck %s +## This file contains test cases for generating .debug_info +## section in object files from the DWARF entry of Mach-O YAML inputs. + +## a) Test that yaml2obj emits a DWARF32 .debug_info sections and obj2yaml +## converts it back. + +# RUN: yaml2obj --docnum=1 %s | obj2yaml | FileCheck %s --check-prefix=DWARF32 --- !mach-o FileHeader: @@ -384,8 +390,7 @@ - Address: 0x0000000100000F50 Length: 52 debug_info: - - Length: - TotalLength: 117 + - Length: 117 Version: 4 AbbrOffset: 0 AddrSize: 8 @@ -507,68 +512,187 @@ ... -#CHECK: DWARF: -#CHECK: debug_info: -#CHECK: - Length: -#CHECK: TotalLength: 117 -#CHECK: Version: 4 -#CHECK: AbbrOffset: 0 -#CHECK: AddrSize: 8 -#CHECK: Entries: -#CHECK: - AbbrCode: 0x00000001 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x000000000000000C -#CHECK: - Value: 0x0000000000000038 -#CHECK: - Value: 0x0000000000000000 -#CHECK: - Value: 0x0000000000000046 -#CHECK: - Value: 0x0000000100000F50 -#CHECK: - Value: 0x0000000000000034 -#CHECK: - AbbrCode: 0x00000002 -#CHECK: Values: -#CHECK: - Value: 0x0000000100000F50 -#CHECK: - Value: 0x0000000000000034 -#CHECK: - Value: 0x0000000000000001 -#CHECK: BlockData: [ 0x56 ] -#CHECK: - Value: 0x0000000000000076 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000003 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000060 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - AbbrCode: 0x00000003 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000002 -#CHECK: BlockData: [ 0x91, 0x78 ] -#CHECK: - Value: 0x000000000000007B -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000003 -#CHECK: - Value: 0x0000000000000060 -#CHECK: - AbbrCode: 0x00000003 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000002 -#CHECK: BlockData: [ 0x91, 0x70 ] -#CHECK: - Value: 0x0000000000000080 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - Value: 0x0000000000000003 -#CHECK: - Value: 0x0000000000000067 -#CHECK: - AbbrCode: 0x00000000 -#CHECK: Values: -#CHECK: - AbbrCode: 0x00000004 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000085 -#CHECK: - Value: 0x0000000000000005 -#CHECK: - Value: 0x0000000000000004 -#CHECK: - AbbrCode: 0x00000005 -#CHECK: Values: -#CHECK: - Value: 0x000000000000006C -#CHECK: - AbbrCode: 0x00000005 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000071 -#CHECK: - AbbrCode: 0x00000004 -#CHECK: Values: -#CHECK: - Value: 0x0000000000000089 -#CHECK: - Value: 0x0000000000000006 -#CHECK: - Value: 0x0000000000000001 -#CHECK: - AbbrCode: 0x00000000 -#CHECK: Values: +# DWARF32: debug_info: +# DWARF32-NEXT: - Length: 117 +# DWARF32-NEXT: Version: 4 +# DWARF32-NEXT: AbbrOffset: 0 +# DWARF32-NEXT: AddrSize: 8 +# DWARF32-NEXT: Entries: +# DWARF32-NEXT: - AbbrCode: 0x00000001 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x000000000000000C +# DWARF32-NEXT: - Value: 0x0000000000000038 +# DWARF32-NEXT: - Value: 0x0000000000000000 +# DWARF32-NEXT: - Value: 0x0000000000000046 +# DWARF32-NEXT: - Value: 0x0000000100000F50 +# DWARF32-NEXT: - Value: 0x0000000000000034 +# DWARF32-NEXT: - AbbrCode: 0x00000002 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000100000F50 +# DWARF32-NEXT: - Value: 0x0000000000000034 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: BlockData: [ 0x56 ] +# DWARF32-NEXT: - Value: 0x0000000000000076 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000003 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000060 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - AbbrCode: 0x00000003 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000002 +# DWARF32-NEXT: BlockData: [ 0x91, 0x78 ] +# DWARF32-NEXT: - Value: 0x000000000000007B +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000003 +# DWARF32-NEXT: - Value: 0x0000000000000060 +# DWARF32-NEXT: - AbbrCode: 0x00000003 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000002 +# DWARF32-NEXT: BlockData: [ 0x91, 0x70 ] +# DWARF32-NEXT: - Value: 0x0000000000000080 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - Value: 0x0000000000000003 +# DWARF32-NEXT: - Value: 0x0000000000000067 +# DWARF32-NEXT: - AbbrCode: 0x00000000 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - AbbrCode: 0x00000004 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000085 +# DWARF32-NEXT: - Value: 0x0000000000000005 +# DWARF32-NEXT: - Value: 0x0000000000000004 +# DWARF32-NEXT: - AbbrCode: 0x00000005 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x000000000000006C +# DWARF32-NEXT: - AbbrCode: 0x00000005 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000071 +# DWARF32-NEXT: - AbbrCode: 0x00000004 +# DWARF32-NEXT: Values: +# DWARF32-NEXT: - Value: 0x0000000000000089 +# DWARF32-NEXT: - Value: 0x0000000000000006 +# DWARF32-NEXT: - Value: 0x0000000000000001 +# DWARF32-NEXT: - AbbrCode: 0x00000000 +# DWARF32-NEXT: Values: + +## b) Test that yaml2obj emits a correct unit header and obj2yaml is able to convert it back. + +## Test DWARF32 unit header. + +# RUN: yaml2obj --docnum=2 -DFORMAT=DWARF32 %s -o %t2.dwarf32.o +# RUN: llvm-readobj --hex-dump=__debug_info %t2.dwarf32.o | \ +# RUN: FileCheck %s --check-prefix=DWARF32-HEADER + +# DWARF32-HEADER: Hex dump of section '__debug_info': +# DWARF32-HEADER-NEXT: 0x00000000 0c000000 04000000 00000801 34120000 ............4... +## ^------- unit_length (4-byte) +## ^--- version (2-byte) +## ^-------- debug_abbrev_offset (4-byte) +## ^- address_size (1-byte) + +# RUN: obj2yaml %t2.dwarf32.o | FileCheck %s --check-prefix=DWARF32-YAML + +# DWARF32-YAML: debug_info: +# DWARF32-YAML-NEXT: - Length: 12 +# DWARF32-YAML-NEXT: Version: 4 +# DWARF32-YAML-NEXT: AbbrOffset: 0 +# DWARF32-YAML-NEXT: AddrSize: 8 +# DWARF32-YAML-NEXT: Entries: +# DWARF32-YAML-NEXT: - AbbrCode: 0x00000001 +# DWARF32-YAML-NEXT: Values: +# DWARF32-YAML-NEXT: - Value: 0x0000000000001234 + +--- !mach-o +FileHeader: + magic: 0xFEEDFACF + cputype: 0x01000007 + cpusubtype: 0x00000003 + filetype: 0x0000000A + ncmds: 1 + sizeofcmds: 232 + flags: 0x00000000 + reserved: 0x00000000 +LoadCommands: + - cmd: LC_SEGMENT_64 + cmdsize: 232 + segname: __DWARF + vmaddr: 0x00 + vmsize: 0x00 + fileoff: 0x00 + filesize: 0x00 + maxprot: 0 + initprot: 0 + nsects: 2 + flags: 0 + Sections: + - sectname: __debug_abbrev + segname: __DWARF + addr: 0x00 + size: 12 + offset: 528 + align: 0 + reloff: 0x00000000 + nreloc: 0 + flags: 0x00000000 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 + - sectname: __debug_info + segname: __DWARF + addr: 0x00 + size: 0xffff + offset: 1070 + align: 0 + reloff: 0x00000000 + nreloc: 0 + flags: 0x00000000 + reserved1: 0x00000000 + reserved2: 0x00000000 + reserved3: 0x00000000 +DWARF: + debug_abbrev: + - Code: 1 + Tag: DW_TAG_compile_unit + Children: DW_CHILDREN_no + Attributes: + - Attribute: DW_AT_producer + Form: DW_FORM_strp + debug_info: + - Format: [[FORMAT]] + Length: 12 + Version: 4 + AbbrOffset: 0 + AddrSize: 8 + Entries: + - AbbrCode: 1 + Values: + - Value: 0x1234 + +## Test DWARF64 unit header. + +# RUN: yaml2obj --docnum=2 -DFORMAT=DWARF64 %s -o %t2.dwarf64.o +# RUN: llvm-readobj --hex-dump=__debug_info %t2.dwarf64.o | \ +# RUN: FileCheck %s --check-prefix=DWARF64-HEADER + +# DWARF64-HEADER: Hex dump of section '__debug_info': +# DWARF64-HEADER-NEXT: 0x00000000 ffffffff 0c000000 00000000 04000000 ................ +## ^------------------------- unit_length (12-byte) +## ^--- version (2-byte) +## ^--- debug_abbrev_offset (8-byte) +# DWARF64-HEADER-NEXT: 0x00000010 00000000 00000801 34120000 00000000 ........4....... +## ------------- +## ^- address_size (1-byte) + +# RUN: obj2yaml %t2.dwarf64.o | FileCheck %s --check-prefix=DWARF64-YAML + +# DWARF64-YAML: debug_info: +# DWARF64-YAML-NEXT: - Format: DWARF64 +# DWARF64-YAML-NEXT: Length: 12 +# DWARF64-YAML-NEXT: Version: 4 +# DWARF64-YAML-NEXT: AbbrOffset: 0 +# DWARF64-YAML-NEXT: AddrSize: 8 +# DWARF64-YAML-NEXT: Entries: +# DWARF64-YAML-NEXT: - AbbrCode: 0x00000001 +# DWARF64-YAML-NEXT: Values: +# DWARF64-YAML-NEXT: - Value: 0x0000000000001234 Index: llvm/lib/ObjectYAML/DWARFYAML.cpp =================================================================== --- llvm/lib/ObjectYAML/DWARFYAML.cpp +++ llvm/lib/ObjectYAML/DWARFYAML.cpp @@ -132,6 +132,7 @@ } void MappingTraits<DWARFYAML::Unit>::mapping(IO &IO, DWARFYAML::Unit &Unit) { + IO.mapOptional("Format", Unit.Format, dwarf::DWARF32); IO.mapRequired("Length", Unit.Length); IO.mapRequired("Version", Unit.Version); if (Unit.Version >= 5) Index: llvm/lib/ObjectYAML/DWARFVisitor.cpp =================================================================== --- llvm/lib/ObjectYAML/DWARFVisitor.cpp +++ llvm/lib/ObjectYAML/DWARFVisitor.cpp @@ -9,6 +9,7 @@ //===----------------------------------------------------------------------===// #include "DWARFVisitor.h" +#include "llvm/BinaryFormat/Dwarf.h" #include "llvm/ObjectYAML/DWARFYAML.h" #include "llvm/Support/Errc.h" #include "llvm/Support/Error.h" @@ -36,7 +37,7 @@ } static unsigned getOffsetSize(const DWARFYAML::Unit &Unit) { - return Unit.Length.isDWARF64() ? 8 : 4; + return Unit.Format == dwarf::DWARF64 ? 8 : 4; } static unsigned getRefSize(const DWARFYAML::Unit &Unit) { Index: llvm/lib/ObjectYAML/DWARFEmitter.cpp =================================================================== --- llvm/lib/ObjectYAML/DWARFEmitter.cpp +++ llvm/lib/ObjectYAML/DWARFEmitter.cpp @@ -207,18 +207,18 @@ protected: void onStartCompileUnit(const DWARFYAML::Unit &CU) override { - writeInitialLength(CU.Length, OS, DebugInfo.IsLittleEndian); + writeInitialLength(CU.Format, CU.Length, OS, DebugInfo.IsLittleEndian); writeInteger((uint16_t)CU.Version, OS, DebugInfo.IsLittleEndian); if (CU.Version >= 5) { writeInteger((uint8_t)CU.Type, OS, DebugInfo.IsLittleEndian); writeInteger((uint8_t)CU.AddrSize, OS, DebugInfo.IsLittleEndian); cantFail(writeVariableSizedInteger(CU.AbbrOffset, - CU.Length.isDWARF64() ? 8 : 4, OS, - DebugInfo.IsLittleEndian)); + CU.Format == dwarf::DWARF64 ? 8 : 4, + OS, DebugInfo.IsLittleEndian)); } else { cantFail(writeVariableSizedInteger(CU.AbbrOffset, - CU.Length.isDWARF64() ? 8 : 4, OS, - DebugInfo.IsLittleEndian)); + CU.Format == dwarf::DWARF64 ? 8 : 4, + OS, DebugInfo.IsLittleEndian)); writeInteger((uint8_t)CU.AddrSize, OS, DebugInfo.IsLittleEndian); } } @@ -441,9 +441,7 @@ Length = CU.Version >= 5 ? 8 : 7; } - virtual void onEndCompileUnit(DWARFYAML::Unit &CU) { - CU.Length.setLength(Length); - } + virtual void onEndCompileUnit(DWARFYAML::Unit &CU) { CU.Length = Length; } virtual void onStartDIE(DWARFYAML::Unit &CU, DWARFYAML::Entry &DIE) { Length += getULEB128Size(DIE.AbbrCode); Index: llvm/include/llvm/ObjectYAML/DWARFYAML.h =================================================================== --- llvm/include/llvm/ObjectYAML/DWARFYAML.h +++ llvm/include/llvm/ObjectYAML/DWARFYAML.h @@ -117,7 +117,8 @@ }; struct Unit { - InitialLength Length; + dwarf::DwarfFormat Format; + uint64_t Length; uint16_t Version; llvm::dwarf::UnitType Type; // Added in DWARF 5 yaml::Hex64 AbbrOffset; Index: lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp =================================================================== --- lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp +++ lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp @@ -56,8 +56,7 @@ " - Attribute: DW_AT_byte_size\n" " Form: DW_FORM_data1\n" "debug_info:\n" - " - Length:\n" - " TotalLength: 0\n" + " - Length: 0\n" " Version: 4\n" " AbbrOffset: 0\n" " AddrSize: 8\n" Index: lldb/unittests/Symbol/Inputs/inlined-functions.yaml =================================================================== --- lldb/unittests/Symbol/Inputs/inlined-functions.yaml +++ lldb/unittests/Symbol/Inputs/inlined-functions.yaml @@ -342,8 +342,7 @@ - Attribute: DW_AT_type Form: DW_FORM_ref4 debug_info: - - Length: - TotalLength: 579 + - Length: 579 Version: 4 AbbrOffset: 0 AddrSize: 8 Index: lldb/unittests/Expression/DWARFExpressionTest.cpp =================================================================== --- lldb/unittests/Expression/DWARFExpressionTest.cpp +++ lldb/unittests/Expression/DWARFExpressionTest.cpp @@ -94,8 +94,7 @@ " - Attribute: DW_AT_byte_size\n" " Form: DW_FORM_data1\n" "debug_info:\n" - " - Length:\n" - " TotalLength: 0\n" + " - Length: 0\n" " Version: 4\n" " AbbrOffset: 0\n" " AddrSize: 8\n" Index: lldb/test/API/functionalities/source-map/a.yaml =================================================================== --- lldb/test/API/functionalities/source-map/a.yaml +++ lldb/test/API/functionalities/source-map/a.yaml @@ -296,8 +296,7 @@ - Attribute: DW_AT_type Form: DW_FORM_ref4 debug_info: - - Length: - TotalLength: 122 + - Length: 122 Version: 4 AbbrOffset: 0 AddrSize: 8
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits