172 lines · plain
1# RUN: llvm-mc %s -filetype obj -triple x86_64-pc-linux -o %t.o2# RUN: llvm-dwarfdump -v %t.o | FileCheck %s3 4# CHECK: .debug_info5# CHECK: DW_AT_name{{.*}}"stub"6# CHECK: DW_AT_location [DW_FORM_sec_offset] (0x0000000c7# CHECK-NEXT: [0x0000000000000010, 0x0000000000000020): DW_OP_breg5 RDI+08# CHECK-NEXT: [0x0000000000000530, 0x0000000000000540): DW_OP_breg6 RBP-8, DW_OP_deref9# CHECK-NEXT: [0x0000000000000700, 0x0000000000000710): DW_OP_breg5 RDI+010 11# CHECK: .debug_loclists contents:12# CHECK-NEXT: 0x00000000: locations list header: length = 0x0000002c, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x0000000013# CHECK-NEXT: 0x0000000c:14# CHECK-NEXT: DW_LLE_offset_pair (0x0000000000000000, 0x0000000000000010): DW_OP_breg5 RDI+015# CHECK-NEXT: DW_LLE_base_address (0x0000000000000500)16# CHECK-NEXT: DW_LLE_offset_pair (0x0000000000000030, 0x0000000000000040)17# CHECK-NEXT: => [0x0000000000000530, 0x0000000000000540): DW_OP_breg6 RBP-8, DW_OP_deref18# CHECK-NEXT: DW_LLE_start_length (0x0000000000000700, 0x0000000000000010)19# CHECK-NEXT: => [0x0000000000000700, 0x0000000000000710): DW_OP_breg5 RDI+020# CHECK-NEXT: DW_LLE_end_of_list ()21 22.section .debug_str,"MS",@progbits,123 .asciz "stub"24 25.section .debug_str_offsets,"",@progbits26 .long 6827 .short 528 .short 029.Lstr_offsets_base0:30 .zero 6431 32.section .debug_loclists,"",@progbits33 .long .Ldebug_loclist_table_end0-.Ldebug_loclist_table_start034.Ldebug_loclist_table_start0:35 .short 5 # Version.36 .byte 8 # Address size.37 .byte 0 # Segmen selector size.38 .long 0 # Offset entry count.39.Lloclists_table_base0:40.Ldebug_loc0:41 .byte 4 # DW_LLE_offset_pair42 .uleb128 0x0 # starting offset43 .uleb128 0x10 # ending offset44 .byte 2 # Loc expr size45 .byte 117 # DW_OP_breg546 .byte 0 # 047 48 .byte 6 # DW_LLE_base_address49 .quad 0x500 # Some address50 51 .byte 4 # DW_LLE_offset_pair52 .uleb128 0x30 # starting offset53 .uleb128 0x40 # ending offset54 .byte 3 # Loc expr size55 .byte 118 # DW_OP_breg656 .byte 120 # -857 .byte 6 # DW_OP_deref58 59 .byte 8 # DW_LLE_start_length60 .quad 0x700 # Some address61 .uleb128 0x10 # length62 .byte 2 # Loc expr size63 .byte 117 # DW_OP_breg564 .byte 0 # 065 66 .byte 0 # DW_LLE_end_of_list67 68.Ldebug_loclist_table_end0:69 70.section .debug_abbrev,"",@progbits71 .byte 1 # Abbreviation Code72 .byte 17 # DW_TAG_compile_unit73 .byte 1 # DW_CHILDREN_yes74 .byte 37 # DW_AT_producer75 .byte 37 # DW_FORM_strx176 .byte 19 # DW_AT_language77 .byte 5 # DW_FORM_data278 .byte 3 # DW_AT_name79 .byte 37 # DW_FORM_strx180 .byte 114 # DW_AT_str_offsets_base81 .byte 23 # DW_FORM_sec_offset82 .byte 16 # DW_AT_stmt_list83 .byte 23 # DW_FORM_sec_offset84 .byte 27 # DW_AT_comp_dir85 .byte 37 # DW_FORM_strx186 .byte 17 # DW_AT_low_pc87 .byte 1 # DW_FORM_addr88 .byte 18 # DW_AT_high_pc89 .byte 6 # DW_FORM_data490 .ascii "\214\001" # DW_AT_loclists_base91 .byte 23 # DW_FORM_sec_offset92 .byte 0 # EOM(1)93 .byte 0 # EOM(2)94 .byte 2 # Abbreviation Code95 .byte 46 # DW_TAG_subprogram96 .byte 1 # DW_CHILDREN_yes97 .byte 17 # DW_AT_low_pc98 .byte 1 # DW_FORM_addr99 .byte 18 # DW_AT_high_pc100 .byte 6 # DW_FORM_data4101 .byte 64 # DW_AT_frame_base102 .byte 24 # DW_FORM_exprloc103 .byte 110 # DW_AT_linkage_name104 .byte 37 # DW_FORM_strx1105 .byte 3 # DW_AT_name106 .byte 37 # DW_FORM_strx1107 .byte 58 # DW_AT_decl_file108 .byte 11 # DW_FORM_data1109 .byte 59 # DW_AT_decl_line110 .byte 11 # DW_FORM_data1111 .byte 63 # DW_AT_external112 .byte 25 # DW_FORM_flag_present113 .byte 0 # EOM(1)114 .byte 0 # EOM(2)115 .byte 3 # Abbreviation Code116 .byte 52 # DW_TAG_variable117 .byte 0 # DW_CHILDREN_no118 .byte 2 # DW_AT_location119 .byte 23 # DW_FORM_sec_offset120 .byte 3 # DW_AT_name121 .byte 37 # DW_FORM_strx1122 .byte 58 # DW_AT_decl_file123 .byte 11 # DW_FORM_data1124 .byte 59 # DW_AT_decl_line125 .byte 11 # DW_FORM_data1126 .byte 73 # DW_AT_type127 .byte 19 # DW_FORM_ref4128 .byte 0 # EOM(1)129 .byte 0 # EOM(2)130 .byte 0 # EOM(3)131 132.section .debug_info,"",@progbits133.Lcu_begin0:134 .long 70 # Length of Unit135 .short 5 # DWARF version number136 .byte 1 # DWARF Unit Type137 .byte 8 # Address Size (in bytes)138 .long .debug_abbrev # Offset Into Abbrev. Section139 .byte 1 # Abbrev [1] 0xc:0xef DW_TAG_compile_unit140 .byte 0 # DW_AT_producer141 .short 4 # DW_AT_language142 .byte 1 # DW_AT_name143 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base144 .long .Lline_table_start0 # DW_AT_stmt_list145 .byte 2 # DW_AT_comp_dir146 .quad 0x10 # DW_AT_low_pc147 .long 0 # DW_AT_high_pc148 .long .Lloclists_table_base0 # DW_AT_loclists_base149 .byte 2 # Abbrev [2] 0x2a:0x20 DW_TAG_subprogram150 .quad 0 # DW_AT_low_pc151 .long 0 # DW_AT_high_pc152 .byte 1 # DW_AT_frame_base153 .byte 86154 .byte 11 # DW_AT_linkage_name155 .byte 12 # DW_AT_name156 .byte 1 # DW_AT_decl_file157 .byte 6 # DW_AT_decl_line158 # DW_AT_external159 .byte 3 # Abbrev [3] 0x40:0xb DW_TAG_variable160 .long .Ldebug_loc0 # DW_AT_location161 .byte 7 # DW_AT_name162 .byte 1 # DW_AT_decl_file163 .byte 6 # DW_AT_decl_line164 .long 76 # DW_AT_type165 .byte 0 # End Of Children Mark166 .byte 0 # End Of Children Mark167 .byte 0 # End Of Children Mark168 169.section .debug_line,"",@progbits170.Lline_table_start0:171 172