1# clang++ -gsplit-dwarf -g2 -gdwarf-5 -gpubnames -fdebug-types-section -fdebug-compilation-dir='.' 2# header.h 3# struct Foo2a { 4# char *c1; 5# char *c2; 6# char *c3; 7# }; 8 9# main.cpp 10# #include "header.h" 11# struct Foo2 { 12# char *c1; 13# }; 14# int main(int argc, char *argv[]) { 15# Foo2 f2; 16# Foo2a f3; 17# return 0; 18# } 19 .text 20 .file "main.cpp" 21 .globl main # -- Begin function main 22 .p2align 4, 0x90 23 .type main,@function 24main: # @main 25.Lfunc_begin0: 26 .file 0 "." "main.cpp" md5 0x9c5cea5bb78d3fc265cd175110bfe903 27 .loc 0 5 0 # main.cpp:5:0 28 .cfi_startproc 29# %bb.0: # %entry 30 pushq %rbp 31 .cfi_def_cfa_offset 16 32 .cfi_offset %rbp, -16 33 movq %rsp, %rbp 34 .cfi_def_cfa_register %rbp 35 movl $0, -4(%rbp) 36 movl %edi, -8(%rbp) 37 movq %rsi, -16(%rbp) 38.Ltmp0: 39 .loc 0 8 2 prologue_end # main.cpp:8:2 40 xorl %eax, %eax 41 .loc 0 8 2 epilogue_begin is_stmt 0 # main.cpp:8:2 42 popq %rbp 43 .cfi_def_cfa %rsp, 8 44 retq 45.Ltmp1: 46.Lfunc_end0: 47 .size main, .Lfunc_end0-main 48 .cfi_endproc 49 # -- End function 50 .section .debug_info.dwo,"e",@progbits 51 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit 52.Ldebug_info_dwo_start0: 53 .short 5 # DWARF version number 54 .byte 6 # DWARF Unit Type 55 .byte 8 # Address Size (in bytes) 56 .long 0 # Offset Into Abbrev. Section 57 .quad 5322170643381124694 # Type Signature 58 .long 31 # Type DIE Offset 59 .byte 1 # Abbrev [1] 0x18:0x21 DW_TAG_type_unit 60 .short 33 # DW_AT_language 61 .long 0 # DW_AT_stmt_list 62 .byte 2 # Abbrev [2] 0x1f:0x10 DW_TAG_structure_type 63 .byte 5 # DW_AT_calling_convention 64 .byte 7 # DW_AT_name 65 .byte 8 # DW_AT_byte_size 66 .byte 0 # DW_AT_decl_file 67 .byte 2 # DW_AT_decl_line 68 .byte 3 # Abbrev [3] 0x25:0x9 DW_TAG_member 69 .byte 6 # DW_AT_name 70 .long 47 # DW_AT_type 71 .byte 0 # DW_AT_decl_file 72 .byte 3 # DW_AT_decl_line 73 .byte 0 # DW_AT_data_member_location 74 .byte 0 # End Of Children Mark 75 .byte 4 # Abbrev [4] 0x2f:0x5 DW_TAG_pointer_type 76 .long 52 # DW_AT_type 77 .byte 5 # Abbrev [5] 0x34:0x4 DW_TAG_base_type 78 .byte 4 # DW_AT_name 79 .byte 6 # DW_AT_encoding 80 .byte 1 # DW_AT_byte_size 81 .byte 0 # End Of Children Mark 82.Ldebug_info_dwo_end0: 83 .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit 84.Ldebug_info_dwo_start1: 85 .short 5 # DWARF version number 86 .byte 6 # DWARF Unit Type 87 .byte 8 # Address Size (in bytes) 88 .long 0 # Offset Into Abbrev. Section 89 .quad 1175092228111723119 # Type Signature 90 .long 31 # Type DIE Offset 91 .byte 1 # Abbrev [1] 0x18:0x33 DW_TAG_type_unit 92 .short 33 # DW_AT_language 93 .long 0 # DW_AT_stmt_list 94 .byte 2 # Abbrev [2] 0x1f:0x22 DW_TAG_structure_type 95 .byte 5 # DW_AT_calling_convention 96 .byte 11 # DW_AT_name 97 .byte 24 # DW_AT_byte_size 98 .byte 1 # DW_AT_decl_file 99 .byte 1 # DW_AT_decl_line 100 .byte 3 # Abbrev [3] 0x25:0x9 DW_TAG_member 101 .byte 6 # DW_AT_name 102 .long 65 # DW_AT_type 103 .byte 1 # DW_AT_decl_file 104 .byte 2 # DW_AT_decl_line 105 .byte 0 # DW_AT_data_member_location 106 .byte 3 # Abbrev [3] 0x2e:0x9 DW_TAG_member 107 .byte 9 # DW_AT_name 108 .long 65 # DW_AT_type 109 .byte 1 # DW_AT_decl_file 110 .byte 3 # DW_AT_decl_line 111 .byte 8 # DW_AT_data_member_location 112 .byte 3 # Abbrev [3] 0x37:0x9 DW_TAG_member 113 .byte 10 # DW_AT_name 114 .long 65 # DW_AT_type 115 .byte 1 # DW_AT_decl_file 116 .byte 4 # DW_AT_decl_line 117 .byte 16 # DW_AT_data_member_location 118 .byte 0 # End Of Children Mark 119 .byte 4 # Abbrev [4] 0x41:0x5 DW_TAG_pointer_type 120 .long 70 # DW_AT_type 121 .byte 5 # Abbrev [5] 0x46:0x4 DW_TAG_base_type 122 .byte 4 # DW_AT_name 123 .byte 6 # DW_AT_encoding 124 .byte 1 # DW_AT_byte_size 125 .byte 0 # End Of Children Mark 126.Ldebug_info_dwo_end1: 127 .section .debug_abbrev,"",@progbits 128 .byte 1 # Abbreviation Code 129 .byte 74 # DW_TAG_skeleton_unit 130 .byte 0 # DW_CHILDREN_no 131 .byte 16 # DW_AT_stmt_list 132 .byte 23 # DW_FORM_sec_offset 133 .byte 114 # DW_AT_str_offsets_base 134 .byte 23 # DW_FORM_sec_offset 135 .byte 27 # DW_AT_comp_dir 136 .byte 37 # DW_FORM_strx1 137 .byte 118 # DW_AT_dwo_name 138 .byte 37 # DW_FORM_strx1 139 .byte 17 # DW_AT_low_pc 140 .byte 27 # DW_FORM_addrx 141 .byte 18 # DW_AT_high_pc 142 .byte 6 # DW_FORM_data4 143 .byte 115 # DW_AT_addr_base 144 .byte 23 # DW_FORM_sec_offset 145 .byte 0 # EOM(1) 146 .byte 0 # EOM(2) 147 .byte 0 # EOM(3) 148 .section .debug_info,"",@progbits 149.Lcu_begin0: 150 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 151.Ldebug_info_start0: 152 .short 5 # DWARF version number 153 .byte 4 # DWARF Unit Type 154 .byte 8 # Address Size (in bytes) 155 .long .debug_abbrev # Offset Into Abbrev. Section 156 .quad 5962099678818150071 157 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit 158 .long .Lline_table_start0 # DW_AT_stmt_list 159 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 160 .byte 0 # DW_AT_comp_dir 161 .byte 1 # DW_AT_dwo_name 162 .byte 0 # DW_AT_low_pc 163 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 164 .long .Laddr_table_base0 # DW_AT_addr_base 165.Ldebug_info_end0: 166 .section .debug_str_offsets,"",@progbits 167 .long 12 # Length of String Offsets Set 168 .short 5 169 .short 0 170.Lstr_offsets_base0: 171 .section .debug_str,"MS",@progbits,1 172.Lskel_string0: 173 .asciz "." # string offset=0 174.Lskel_string1: 175 .asciz "main.dwo" # string offset=2 176 .section .debug_str_offsets,"",@progbits 177 .long .Lskel_string0 178 .long .Lskel_string1 179 .section .debug_str_offsets.dwo,"e",@progbits 180 .long 64 # Length of String Offsets Set 181 .short 5 182 .short 0 183 .section .debug_str.dwo,"eMS",@progbits,1 184.Linfo_string0: 185 .asciz "main" # string offset=0 186.Linfo_string1: 187 .asciz "int" # string offset=5 188.Linfo_string2: 189 .asciz "argc" # string offset=9 190.Linfo_string3: 191 .asciz "argv" # string offset=14 192.Linfo_string4: 193 .asciz "char" # string offset=19 194.Linfo_string5: 195 .asciz "f2" # string offset=24 196.Linfo_string6: 197 .asciz "c1" # string offset=27 198.Linfo_string7: 199 .asciz "Foo2" # string offset=30 200.Linfo_string8: 201 .asciz "f3" # string offset=35 202.Linfo_string9: 203 .asciz "c2" # string offset=38 204.Linfo_string10: 205 .asciz "c3" # string offset=41 206.Linfo_string11: 207 .asciz "Foo2a" # string offset=44 208.Linfo_string12: 209 .asciz "clang version 18.0.0" # string offset=50 210.Linfo_string13: 211 .asciz "main.cpp" # string offset=71 212.Linfo_string14: 213 .asciz "main.dwo" # string offset=80 214 .section .debug_str_offsets.dwo,"e",@progbits 215 .long 0 216 .long 5 217 .long 9 218 .long 14 219 .long 19 220 .long 24 221 .long 27 222 .long 30 223 .long 35 224 .long 38 225 .long 41 226 .long 44 227 .long 50 228 .long 71 229 .long 80 230 .section .debug_info.dwo,"e",@progbits 231 .long .Ldebug_info_dwo_end2-.Ldebug_info_dwo_start2 # Length of Unit 232.Ldebug_info_dwo_start2: 233 .short 5 # DWARF version number 234 .byte 5 # DWARF Unit Type 235 .byte 8 # Address Size (in bytes) 236 .long 0 # Offset Into Abbrev. Section 237 .quad 5962099678818150071 238 .byte 6 # Abbrev [6] 0x14:0x67 DW_TAG_compile_unit 239 .byte 12 # DW_AT_producer 240 .short 33 # DW_AT_language 241 .byte 13 # DW_AT_name 242 .byte 14 # DW_AT_dwo_name 243 .byte 7 # Abbrev [7] 0x1a:0x3c DW_TAG_subprogram 244 .byte 0 # DW_AT_low_pc 245 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 246 .byte 1 # DW_AT_frame_base 247 .byte 86 248 .byte 0 # DW_AT_name 249 .byte 0 # DW_AT_decl_file 250 .byte 5 # DW_AT_decl_line 251 .long 86 # DW_AT_type 252 # DW_AT_external 253 .byte 8 # Abbrev [8] 0x29:0xb DW_TAG_formal_parameter 254 .byte 2 # DW_AT_location 255 .byte 145 256 .byte 120 257 .byte 2 # DW_AT_name 258 .byte 0 # DW_AT_decl_file 259 .byte 5 # DW_AT_decl_line 260 .long 86 # DW_AT_type 261 .byte 8 # Abbrev [8] 0x34:0xb DW_TAG_formal_parameter 262 .byte 2 # DW_AT_location 263 .byte 145 264 .byte 112 265 .byte 3 # DW_AT_name 266 .byte 0 # DW_AT_decl_file 267 .byte 5 # DW_AT_decl_line 268 .long 90 # DW_AT_type 269 .byte 9 # Abbrev [9] 0x3f:0xb DW_TAG_variable 270 .byte 2 # DW_AT_location 271 .byte 145 272 .byte 104 273 .byte 5 # DW_AT_name 274 .byte 0 # DW_AT_decl_file 275 .byte 6 # DW_AT_decl_line 276 .long 104 # DW_AT_type 277 .byte 9 # Abbrev [9] 0x4a:0xb DW_TAG_variable 278 .byte 2 # DW_AT_location 279 .byte 145 280 .byte 80 281 .byte 8 # DW_AT_name 282 .byte 0 # DW_AT_decl_file 283 .byte 7 # DW_AT_decl_line 284 .long 113 # DW_AT_type 285 .byte 0 # End Of Children Mark 286 .byte 5 # Abbrev [5] 0x56:0x4 DW_TAG_base_type 287 .byte 1 # DW_AT_name 288 .byte 5 # DW_AT_encoding 289 .byte 4 # DW_AT_byte_size 290 .byte 4 # Abbrev [4] 0x5a:0x5 DW_TAG_pointer_type 291 .long 95 # DW_AT_type 292 .byte 4 # Abbrev [4] 0x5f:0x5 DW_TAG_pointer_type 293 .long 100 # DW_AT_type 294 .byte 5 # Abbrev [5] 0x64:0x4 DW_TAG_base_type 295 .byte 4 # DW_AT_name 296 .byte 6 # DW_AT_encoding 297 .byte 1 # DW_AT_byte_size 298 .byte 10 # Abbrev [10] 0x68:0x9 DW_TAG_structure_type 299 # DW_AT_declaration 300 .quad 5322170643381124694 # DW_AT_signature 301 .byte 10 # Abbrev [10] 0x71:0x9 DW_TAG_structure_type 302 # DW_AT_declaration 303 .quad 1175092228111723119 # DW_AT_signature 304 .byte 0 # End Of Children Mark 305.Ldebug_info_dwo_end2: 306 .section .debug_abbrev.dwo,"e",@progbits 307 .byte 1 # Abbreviation Code 308 .byte 65 # DW_TAG_type_unit 309 .byte 1 # DW_CHILDREN_yes 310 .byte 19 # DW_AT_language 311 .byte 5 # DW_FORM_data2 312 .byte 16 # DW_AT_stmt_list 313 .byte 23 # DW_FORM_sec_offset 314 .byte 0 # EOM(1) 315 .byte 0 # EOM(2) 316 .byte 2 # Abbreviation Code 317 .byte 19 # DW_TAG_structure_type 318 .byte 1 # DW_CHILDREN_yes 319 .byte 54 # DW_AT_calling_convention 320 .byte 11 # DW_FORM_data1 321 .byte 3 # DW_AT_name 322 .byte 37 # DW_FORM_strx1 323 .byte 11 # DW_AT_byte_size 324 .byte 11 # DW_FORM_data1 325 .byte 58 # DW_AT_decl_file 326 .byte 11 # DW_FORM_data1 327 .byte 59 # DW_AT_decl_line 328 .byte 11 # DW_FORM_data1 329 .byte 0 # EOM(1) 330 .byte 0 # EOM(2) 331 .byte 3 # Abbreviation Code 332 .byte 13 # DW_TAG_member 333 .byte 0 # DW_CHILDREN_no 334 .byte 3 # DW_AT_name 335 .byte 37 # DW_FORM_strx1 336 .byte 73 # DW_AT_type 337 .byte 19 # DW_FORM_ref4 338 .byte 58 # DW_AT_decl_file 339 .byte 11 # DW_FORM_data1 340 .byte 59 # DW_AT_decl_line 341 .byte 11 # DW_FORM_data1 342 .byte 56 # DW_AT_data_member_location 343 .byte 11 # DW_FORM_data1 344 .byte 0 # EOM(1) 345 .byte 0 # EOM(2) 346 .byte 4 # Abbreviation Code 347 .byte 15 # DW_TAG_pointer_type 348 .byte 0 # DW_CHILDREN_no 349 .byte 73 # DW_AT_type 350 .byte 19 # DW_FORM_ref4 351 .byte 0 # EOM(1) 352 .byte 0 # EOM(2) 353 .byte 5 # Abbreviation Code 354 .byte 36 # DW_TAG_base_type 355 .byte 0 # DW_CHILDREN_no 356 .byte 3 # DW_AT_name 357 .byte 37 # DW_FORM_strx1 358 .byte 62 # DW_AT_encoding 359 .byte 11 # DW_FORM_data1 360 .byte 11 # DW_AT_byte_size 361 .byte 11 # DW_FORM_data1 362 .byte 0 # EOM(1) 363 .byte 0 # EOM(2) 364 .byte 6 # Abbreviation Code 365 .byte 17 # DW_TAG_compile_unit 366 .byte 1 # DW_CHILDREN_yes 367 .byte 37 # DW_AT_producer 368 .byte 37 # DW_FORM_strx1 369 .byte 19 # DW_AT_language 370 .byte 5 # DW_FORM_data2 371 .byte 3 # DW_AT_name 372 .byte 37 # DW_FORM_strx1 373 .byte 118 # DW_AT_dwo_name 374 .byte 37 # DW_FORM_strx1 375 .byte 0 # EOM(1) 376 .byte 0 # EOM(2) 377 .byte 7 # Abbreviation Code 378 .byte 46 # DW_TAG_subprogram 379 .byte 1 # DW_CHILDREN_yes 380 .byte 17 # DW_AT_low_pc 381 .byte 27 # DW_FORM_addrx 382 .byte 18 # DW_AT_high_pc 383 .byte 6 # DW_FORM_data4 384 .byte 64 # DW_AT_frame_base 385 .byte 24 # DW_FORM_exprloc 386 .byte 3 # DW_AT_name 387 .byte 37 # DW_FORM_strx1 388 .byte 58 # DW_AT_decl_file 389 .byte 11 # DW_FORM_data1 390 .byte 59 # DW_AT_decl_line 391 .byte 11 # DW_FORM_data1 392 .byte 73 # DW_AT_type 393 .byte 19 # DW_FORM_ref4 394 .byte 63 # DW_AT_external 395 .byte 25 # DW_FORM_flag_present 396 .byte 0 # EOM(1) 397 .byte 0 # EOM(2) 398 .byte 8 # Abbreviation Code 399 .byte 5 # DW_TAG_formal_parameter 400 .byte 0 # DW_CHILDREN_no 401 .byte 2 # DW_AT_location 402 .byte 24 # DW_FORM_exprloc 403 .byte 3 # DW_AT_name 404 .byte 37 # DW_FORM_strx1 405 .byte 58 # DW_AT_decl_file 406 .byte 11 # DW_FORM_data1 407 .byte 59 # DW_AT_decl_line 408 .byte 11 # DW_FORM_data1 409 .byte 73 # DW_AT_type 410 .byte 19 # DW_FORM_ref4 411 .byte 0 # EOM(1) 412 .byte 0 # EOM(2) 413 .byte 9 # Abbreviation Code 414 .byte 52 # DW_TAG_variable 415 .byte 0 # DW_CHILDREN_no 416 .byte 2 # DW_AT_location 417 .byte 24 # DW_FORM_exprloc 418 .byte 3 # DW_AT_name 419 .byte 37 # DW_FORM_strx1 420 .byte 58 # DW_AT_decl_file 421 .byte 11 # DW_FORM_data1 422 .byte 59 # DW_AT_decl_line 423 .byte 11 # DW_FORM_data1 424 .byte 73 # DW_AT_type 425 .byte 19 # DW_FORM_ref4 426 .byte 0 # EOM(1) 427 .byte 0 # EOM(2) 428 .byte 10 # Abbreviation Code 429 .byte 19 # DW_TAG_structure_type 430 .byte 0 # DW_CHILDREN_no 431 .byte 60 # DW_AT_declaration 432 .byte 25 # DW_FORM_flag_present 433 .byte 105 # DW_AT_signature 434 .byte 32 # DW_FORM_ref_sig8 435 .byte 0 # EOM(1) 436 .byte 0 # EOM(2) 437 .byte 0 # EOM(3) 438 .section .debug_line.dwo,"e",@progbits 439.Ltmp2: 440 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length 441.Ldebug_line_start0: 442 .short 5 443 .byte 8 444 .byte 0 445 .long .Lprologue_end0-.Lprologue_start0 446.Lprologue_start0: 447 .byte 1 448 .byte 1 449 .byte 1 450 .byte -5 451 .byte 14 452 .byte 1 453 .byte 1 454 .byte 1 455 .byte 8 456 .byte 2 457 .byte 46 458 .byte 0 459 .byte 46 460 .byte 0 461 .byte 3 462 .byte 1 463 .byte 8 464 .byte 2 465 .byte 15 466 .byte 5 467 .byte 30 468 .byte 2 469 .ascii "main.cpp" 470 .byte 0 471 .byte 0 472 .byte 0x9c, 0x5c, 0xea, 0x5b 473 .byte 0xb7, 0x8d, 0x3f, 0xc2 474 .byte 0x65, 0xcd, 0x17, 0x51 475 .byte 0x10, 0xbf, 0xe9, 0x03 476 .ascii "header.h" 477 .byte 0 478 .byte 1 479 .byte 0xfe, 0xa7, 0xbb, 0x1f 480 .byte 0x22, 0xc4, 0x7f, 0x12 481 .byte 0x9e, 0x15, 0x69, 0x5f 482 .byte 0x71, 0x37, 0xa1, 0xe7 483.Lprologue_end0: 484.Ldebug_line_end0: 485 .section .debug_addr,"",@progbits 486 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution 487.Ldebug_addr_start0: 488 .short 5 # DWARF version number 489 .byte 8 # Address size 490 .byte 0 # Segment selector size 491.Laddr_table_base0: 492 .quad .Lfunc_begin0 493.Ldebug_addr_end0: 494 .ident "clang version 18.0.0" 495 .section ".note.GNU-stack","",@progbits 496 .addrsig 497 .section .debug_line,"",@progbits 498.Lline_table_start0: 499