129 lines · plain
1# RUN: llvm-mc -triple=x86_64-pc-linux -filetype=obj %s > %t2# RUN: not llvm-dwarfdump %t 2>%t.err | FileCheck %s3# RUN: FileCheck %s < %t.err -check-prefix=ERR4 5# CHECK: DW_AT_name ("x0")6# CHECK-NEXT: DW_AT_location (0x000000007# CHECK-NEXT: [0x0000000000000000, 0x0000000000000002): DW_OP_reg5 RDI8# CHECK-NEXT: [0x0000000000000002, 0x0000000000000003): DW_OP_reg0 RAX)9 10# CHECK: DW_AT_name ("x1")11# CHECK-NEXT: DW_AT_location (0xdeadbeef: )12# ERR: error: offset 0xdeadbeef is beyond the end of data at 0x4813 14# CHECK: DW_AT_name ("x2")15# CHECK-NEXT: DW_AT_location (0x00000036: )16# ERR: error: unexpected end of data at offset 0x48 while reading [0x48, 0xdef5)17 18 19 .type f,@function20f: # @f21.Lfunc_begin0:22 movl %edi, %eax23.Ltmp0:24 retq25.Ltmp1:26.Lfunc_end0:27 .size f, .Lfunc_end0-f28 29 .section .debug_str,"MS",@progbits,130.Linfo_string0:31 .asciz "Hand-written DWARF"32.Linfo_string3:33 .asciz "f"34.Linfo_string4:35 .asciz "int"36.Lx0:37 .asciz "x0"38.Lx1:39 .asciz "x1"40.Lx2:41 .asciz "x2"42 43 .section .debug_loc,"",@progbits44.Ldebug_loc0:45 .quad .Lfunc_begin0-.Lfunc_begin046 .quad .Ltmp0-.Lfunc_begin047 .short 1 # Loc expr size48 .byte 85 # super-register DW_OP_reg549 .quad .Ltmp0-.Lfunc_begin050 .quad .Lfunc_end0-.Lfunc_begin051 .short 1 # Loc expr size52 .byte 80 # super-register DW_OP_reg053 .quad 054 .quad 055.Ldebug_loc2:56 .quad .Lfunc_begin0-.Lfunc_begin057 .quad .Lfunc_end0-.Lfunc_begin058 .short 0xdead # Loc expr size59 60 .section .debug_abbrev,"",@progbits61 .byte 1 # Abbreviation Code62 .byte 17 # DW_TAG_compile_unit63 .byte 1 # DW_CHILDREN_yes64 .byte 37 # DW_AT_producer65 .byte 14 # DW_FORM_strp66 .byte 19 # DW_AT_language67 .byte 5 # DW_FORM_data268 .byte 17 # DW_AT_low_pc69 .byte 1 # DW_FORM_addr70 .byte 18 # DW_AT_high_pc71 .byte 6 # DW_FORM_data472 .byte 0 # EOM(1)73 .byte 0 # EOM(2)74 .byte 2 # Abbreviation Code75 .byte 46 # DW_TAG_subprogram76 .byte 1 # DW_CHILDREN_yes77 .byte 3 # DW_AT_name78 .byte 14 # DW_FORM_strp79 .byte 0 # EOM(1)80 .byte 0 # EOM(2)81 .byte 3 # Abbreviation Code82 .byte 5 # DW_TAG_formal_parameter83 .byte 0 # DW_CHILDREN_no84 .byte 3 # DW_AT_name85 .byte 14 # DW_FORM_strp86 .byte 2 # DW_AT_location87 .byte 23 # DW_FORM_sec_offset88 .byte 0 # EOM(1)89 .byte 0 # EOM(2)90 .byte 4 # Abbreviation Code91 .byte 36 # DW_TAG_base_type92 .byte 0 # DW_CHILDREN_no93 .byte 3 # DW_AT_name94 .byte 14 # DW_FORM_strp95 .byte 62 # DW_AT_encoding96 .byte 11 # DW_FORM_data197 .byte 11 # DW_AT_byte_size98 .byte 11 # DW_FORM_data199 .byte 0 # EOM(1)100 .byte 0 # EOM(2)101 .byte 0 # EOM(3)102 103 .section .debug_info,"",@progbits104.Lcu_begin0:105 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit106.Ldebug_info_start0:107 .short 4 # DWARF version number108 .long .debug_abbrev # Offset Into Abbrev. Section109 .byte 8 # Address Size (in bytes)110 .byte 1 # Abbrev [1] 0xb:0x50 DW_TAG_compile_unit111 .long .Linfo_string0 # DW_AT_producer112 .short 12 # DW_AT_language113 .quad 0 # DW_AT_low_pc114 .long 0x100 # DW_AT_high_pc115 .byte 2 # Abbrev [2] 0x2a:0x29 DW_TAG_subprogram116 .long .Linfo_string3 # DW_AT_name117 .byte 3 # Abbrev [3] DW_TAG_formal_parameter118 .long .Lx0 # DW_AT_name119 .long .Ldebug_loc0 # DW_AT_location120 .byte 3 # Abbrev [3] DW_TAG_formal_parameter121 .long .Lx1 # DW_AT_name122 .long 0xdeadbeef # DW_AT_location123 .byte 3 # Abbrev [3] DW_TAG_formal_parameter124 .long .Lx2 # DW_AT_name125 .long .Ldebug_loc2 # DW_AT_location126 .byte 0 # End Of Children Mark127 .byte 0 # End Of Children Mark128.Ldebug_info_end0:129