1# clang++ helper.cpp -g2 -gsplit-dwarf=split -gdwarf-5 -fdebug-types-section -S 2# int foo() { 3# return 0; 4# } 5 .text 6 .file "helper.cpp" 7 .globl _Z3foov # -- Begin function _Z3foov 8 .p2align 4, 0x90 9 .type _Z3foov,@function 10_Z3foov: # @_Z3foov 11.Lfunc_begin0: 12 .file 0 "." "helper.cpp" md5 0x95a4a33e7fe9423970d3c798fdf8ed43 13 .loc 0 1 0 # helper.cpp:1:0 14 .cfi_startproc 15# %bb.0: # %entry 16 pushq %rbp 17 .cfi_def_cfa_offset 16 18 .cfi_offset %rbp, -16 19 movq %rsp, %rbp 20 .cfi_def_cfa_register %rbp 21.Ltmp0: 22 .loc 0 2 3 prologue_end # helper.cpp:2:3 23 xorl %eax, %eax 24 .loc 0 2 3 epilogue_begin is_stmt 0 # helper.cpp:2:3 25 popq %rbp 26 .cfi_def_cfa %rsp, 8 27 retq 28.Ltmp1: 29.Lfunc_end0: 30 .size _Z3foov, .Lfunc_end0-_Z3foov 31 .cfi_endproc 32 # -- End function 33 .section .debug_abbrev,"",@progbits 34 .byte 1 # Abbreviation Code 35 .byte 74 # DW_TAG_skeleton_unit 36 .byte 0 # DW_CHILDREN_no 37 .byte 16 # DW_AT_stmt_list 38 .byte 23 # DW_FORM_sec_offset 39 .byte 114 # DW_AT_str_offsets_base 40 .byte 23 # DW_FORM_sec_offset 41 .byte 27 # DW_AT_comp_dir 42 .byte 37 # DW_FORM_strx1 43 .ascii "\264B" # DW_AT_GNU_pubnames 44 .byte 25 # DW_FORM_flag_present 45 .byte 118 # DW_AT_dwo_name 46 .byte 37 # DW_FORM_strx1 47 .byte 17 # DW_AT_low_pc 48 .byte 27 # DW_FORM_addrx 49 .byte 18 # DW_AT_high_pc 50 .byte 6 # DW_FORM_data4 51 .byte 115 # DW_AT_addr_base 52 .byte 23 # DW_FORM_sec_offset 53 .byte 0 # EOM(1) 54 .byte 0 # EOM(2) 55 .byte 0 # EOM(3) 56 .section .debug_info,"",@progbits 57.Lcu_begin0: 58 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 59.Ldebug_info_start0: 60 .short 5 # DWARF version number 61 .byte 4 # DWARF Unit Type 62 .byte 8 # Address Size (in bytes) 63 .long .debug_abbrev # Offset Into Abbrev. Section 64 .quad -1360665163647638292 65 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit 66 .long .Lline_table_start0 # DW_AT_stmt_list 67 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 68 .byte 0 # DW_AT_comp_dir 69 # DW_AT_GNU_pubnames 70 .byte 1 # DW_AT_dwo_name 71 .byte 0 # DW_AT_low_pc 72 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 73 .long .Laddr_table_base0 # DW_AT_addr_base 74.Ldebug_info_end0: 75 .section .debug_str_offsets,"",@progbits 76 .long 12 # Length of String Offsets Set 77 .short 5 78 .short 0 79.Lstr_offsets_base0: 80 .section .debug_str,"MS",@progbits,1 81.Lskel_string0: 82 .asciz "." # string offset=0 83.Lskel_string1: 84 .asciz "helper.dwo" # string offset=50 85 .section .debug_str_offsets,"",@progbits 86 .long .Lskel_string0 87 .long .Lskel_string1 88 .section .debug_str_offsets.dwo,"e",@progbits 89 .long 28 # Length of String Offsets Set 90 .short 5 91 .short 0 92 .section .debug_str.dwo,"eMS",@progbits,1 93.Linfo_string0: 94 .asciz "_Z3foov" # string offset=0 95.Linfo_string1: 96 .asciz "foo" # string offset=8 97.Linfo_string2: 98 .asciz "int" # string offset=12 99.Linfo_string3: 100 .asciz "clang version 17.0.0 (https://github.com/llvm/llvm-project.git c8bb7c234c6814b80e2be27eba9718de7ab1ad79)" # string offset=16 101.Linfo_string4: 102 .asciz "helper.cpp" # string offset=121 103.Linfo_string5: 104 .asciz "helper.dwo" # string offset=132 105 .section .debug_str_offsets.dwo,"e",@progbits 106 .long 0 107 .long 8 108 .long 12 109 .long 16 110 .long 121 111 .long 132 112 .section .debug_info.dwo,"e",@progbits 113 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit 114.Ldebug_info_dwo_start0: 115 .short 5 # DWARF version number 116 .byte 5 # DWARF Unit Type 117 .byte 8 # Address Size (in bytes) 118 .long 0 # Offset Into Abbrev. Section 119 .quad -1360665163647638292 120 .byte 1 # Abbrev [1] 0x14:0x1b DW_TAG_compile_unit 121 .byte 3 # DW_AT_producer 122 .short 33 # DW_AT_language 123 .byte 4 # DW_AT_name 124 .byte 5 # DW_AT_dwo_name 125 .byte 2 # Abbrev [2] 0x1a:0x10 DW_TAG_subprogram 126 .byte 0 # DW_AT_low_pc 127 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 128 .byte 1 # DW_AT_frame_base 129 .byte 86 130 .byte 0 # DW_AT_linkage_name 131 .byte 1 # DW_AT_name 132 .byte 0 # DW_AT_decl_file 133 .byte 1 # DW_AT_decl_line 134 .long 42 # DW_AT_type 135 # DW_AT_external 136 .byte 3 # Abbrev [3] 0x2a:0x4 DW_TAG_base_type 137 .byte 2 # DW_AT_name 138 .byte 5 # DW_AT_encoding 139 .byte 4 # DW_AT_byte_size 140 .byte 0 # End Of Children Mark 141.Ldebug_info_dwo_end0: 142 .section .debug_abbrev.dwo,"e",@progbits 143 .byte 1 # Abbreviation Code 144 .byte 17 # DW_TAG_compile_unit 145 .byte 1 # DW_CHILDREN_yes 146 .byte 37 # DW_AT_producer 147 .byte 37 # DW_FORM_strx1 148 .byte 19 # DW_AT_language 149 .byte 5 # DW_FORM_data2 150 .byte 3 # DW_AT_name 151 .byte 37 # DW_FORM_strx1 152 .byte 118 # DW_AT_dwo_name 153 .byte 37 # DW_FORM_strx1 154 .byte 0 # EOM(1) 155 .byte 0 # EOM(2) 156 .byte 2 # Abbreviation Code 157 .byte 46 # DW_TAG_subprogram 158 .byte 0 # DW_CHILDREN_no 159 .byte 17 # DW_AT_low_pc 160 .byte 27 # DW_FORM_addrx 161 .byte 18 # DW_AT_high_pc 162 .byte 6 # DW_FORM_data4 163 .byte 64 # DW_AT_frame_base 164 .byte 24 # DW_FORM_exprloc 165 .byte 110 # DW_AT_linkage_name 166 .byte 37 # DW_FORM_strx1 167 .byte 3 # DW_AT_name 168 .byte 37 # DW_FORM_strx1 169 .byte 58 # DW_AT_decl_file 170 .byte 11 # DW_FORM_data1 171 .byte 59 # DW_AT_decl_line 172 .byte 11 # DW_FORM_data1 173 .byte 73 # DW_AT_type 174 .byte 19 # DW_FORM_ref4 175 .byte 63 # DW_AT_external 176 .byte 25 # DW_FORM_flag_present 177 .byte 0 # EOM(1) 178 .byte 0 # EOM(2) 179 .byte 3 # Abbreviation Code 180 .byte 36 # DW_TAG_base_type 181 .byte 0 # DW_CHILDREN_no 182 .byte 3 # DW_AT_name 183 .byte 37 # DW_FORM_strx1 184 .byte 62 # DW_AT_encoding 185 .byte 11 # DW_FORM_data1 186 .byte 11 # DW_AT_byte_size 187 .byte 11 # DW_FORM_data1 188 .byte 0 # EOM(1) 189 .byte 0 # EOM(2) 190 .byte 0 # EOM(3) 191 .section .debug_addr,"",@progbits 192 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 193.Ldebug_addr_start0: 194 .short 5 # DWARF version number 195 .byte 8 # Address size 196 .byte 0 # Segment selector size 197.Laddr_table_base0: 198 .quad .Lfunc_begin0 199.Ldebug_addr_end0: 200 .section .debug_gnu_pubnames,"",@progbits 201 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info 202.LpubNames_start0: 203 .short 2 # DWARF Version 204 .long .Lcu_begin0 # Offset of Compilation Unit Info 205 .long 40 # Compilation Unit Length 206 .long 26 # DIE offset 207 .byte 48 # Attributes: FUNCTION, EXTERNAL 208 .asciz "foo" # External Name 209 .long 0 # End Mark 210.LpubNames_end0: 211 .section .debug_gnu_pubtypes,"",@progbits 212 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info 213.LpubTypes_start0: 214 .short 2 # DWARF Version 215 .long .Lcu_begin0 # Offset of Compilation Unit Info 216 .long 40 # Compilation Unit Length 217 .long 42 # DIE offset 218 .byte 144 # Attributes: TYPE, STATIC 219 .asciz "int" # External Name 220 .long 0 # End Mark 221.LpubTypes_end0: 222 .ident "clang version 17.0.0 (https://github.com/llvm/llvm-project.git c8bb7c234c6814b80e2be27eba9718de7ab1ad79)" 223 .section ".note.GNU-stack","",@progbits 224 .addrsig 225 .section .debug_line,"",@progbits 226.Lline_table_start0: 227