96 lines · plain
1## This tests dumping a .debug_str_offsets.dwo section which is referenced by2## DWARF64 pre-v5 units and dumping attributes in such units which use the3## DW_FORM_strx form.4 5# RUN: llvm-mc -triple x86_64 %s -filetype=obj -o - | \6# RUN: llvm-dwarfdump -v - | \7# RUN: FileCheck %s8 9# CHECK: .debug_info.dwo contents:10# CHECK: Compile Unit:11# CHECK: DW_TAG_compile_unit [1]12# CHECK-NEXT: DW_AT_name [DW_FORM_strx] (indexed (00000000) string = "Compilation Unit")13 14# CHECK: .debug_types.dwo contents:15# CHECK: Type Unit:16# CHECK: DW_TAG_type_unit [2] *17# CHECK-NEXT: DW_AT_name [DW_FORM_strx] (indexed (00000001) string = "Type Unit")18# CHECK: DW_TAG_structure_type [3] 19# CHECK-NEXT: DW_AT_name [DW_FORM_strx] (indexed (00000002) string = "Structure")20 21# CHECK: .debug_str.dwo contents:22# CHECK-NEXT: 0x00000000: "Compilation Unit"23# CHECK-NEXT: 0x00000011: "Type Unit"24# CHECK-NEXT: 0x0000001b: "Structure"25 26# CHECK: .debug_str_offsets.dwo contents:27# CHECK-NEXT: 0x00000000: Contribution size = 24, Format = DWARF64, Version = 428# CHECK-NEXT: 0x00000000: 0000000000000000 "Compilation Unit"29# CHECK-NEXT: 0x00000008: 0000000000000011 "Type Unit"30# CHECK-NEXT: 0x00000010: 000000000000001b "Structure"31 32 .section .debug_str.dwo, "MSe", @progbits, 133.LStr0:34 .asciz "Compilation Unit"35.LStr1:36 .asciz "Type Unit"37.LStr2:38 .asciz "Structure"39 40 .section .debug_str_offsets.dwo, "e", @progbits41 .quad .LStr0-.debug_str.dwo # 0: "Compilation Unit"42 .quad .LStr1-.debug_str.dwo # 1: "Type Unit"43 .quad .LStr2-.debug_str.dwo # 2: "Structure"44 45 .section .debug_abbrev.dwo, "e", @progbits46 .uleb128 0x01 # Abbrev code47 .uleb128 0x11 # DW_TAG_compile_unit48 .byte 0x00 # DW_CHILDREN_no49 .uleb128 0x03 # DW_AT_name50 .uleb128 0x1a # DW_FORM_strx51 .byte 0x00 # EOM(1)52 .byte 0x00 # EOM(2)53 .uleb128 0x02 # Abbrev code54 .uleb128 0x41 # DW_TAG_type_unit55 .byte 0x01 # DW_CHILDREN_yes56 .uleb128 0x03 # DW_AT_name57 .uleb128 0x1a # DW_FORM_strx58 .byte 0x00 # EOM(1)59 .byte 0x00 # EOM(2)60 .uleb128 0x03 # Abbrev code61 .uleb128 0x13 # DW_TAG_structure_type62 .byte 0x00 # DW_CHILDREN_no (no members)63 .uleb128 0x03 # DW_AT_name64 .uleb128 0x1a # DW_FORM_strx65 .byte 0x00 # EOM(1)66 .byte 0x00 # EOM(2)67 .byte 0x00 # EOM(3)68 69 .section .debug_info.dwo, "e", @progbits70 .long 0xffffffff # DWARF64 mark71 .quad .LCUEnd-.LCUVer # Length72.LCUVer:73 .short 4 # Version74 .quad 0 # Abbrev. offset75 .byte 8 # Address size76 .uleb128 1 # Abbrev [1] DW_TAG_compile_unit77 .uleb128 0 # DW_AT_name ("Compilation Unit")78.LCUEnd:79 80 .section .debug_types.dwo, "e", @progbits81.LTU:82 .long 0xffffffff # DWARF64 mark83 .quad .LTUEnd-.LTUVer # Length84.LTUVer:85 .short 4 # Version86 .quad 0 # Abbrev. offset87 .byte 8 # Address size88 .quad 0x11110022ffffffff # Type Signature89 .quad .LTUType-.LTU # Type offset90 .uleb128 2 # Abbrev [2] DW_TAG_type_unit91 .uleb128 1 # DW_AT_name ("Type Unit")92.LTUType:93 .uleb128 3 # Abbrev [3] DW_TAG_structure_type94 .uleb128 2 # DW_AT_name ("Structure")95.LTUEnd:96