1 # clang++ main.cpp -g2 -gsplit-dwarf=split -gdwarf-5 -fdebug-types-section -S
13 # int main(int argc, char *argv[]) {
16 # f.c2 = argv[argc + 1];
17 # f.c3 = argv[argc + 2];
19 # f.c1 = argv[argc + 3];
20 # f.c2 = argv[argc + 4];
26 .globl main # -- Begin function main
31 .file 0 "." "main.cpp" md5 0xa832f464c853be0f9c52da29cd913807
32 .loc 0 12 0 # main.cpp:12:0
36 .cfi_def_cfa_offset 16
39 .cfi_def_cfa_register %rbp
44 .loc 0 14 10 prologue_end # main.cpp:14:10
47 movq
(%rax
,%rcx
,8), %rax
48 .loc 0 14 8 is_stmt 0 # main.cpp:14:8
50 .loc 0 15 10 is_stmt 1 # main.cpp:15:10
52 .loc 0 15 15 is_stmt 0 # main.cpp:15:15
54 .loc 0 15 20 # main.cpp:15:20
56 .loc 0 15 10 # main.cpp:15:10
58 movq
(%rax
,%rcx
,8), %rax
59 .loc 0 15 8 # main.cpp:15:8
61 .loc 0 16 10 is_stmt 1 # main.cpp:16:10
63 .loc 0 16 15 is_stmt 0 # main.cpp:16:15
65 .loc 0 16 20 # main.cpp:16:20
67 .loc 0 16 10 # main.cpp:16:10
69 movq
(%rax
,%rcx
,8), %rax
70 .loc 0 16 8 # main.cpp:16:8
72 .loc 0 18 10 is_stmt 1 # main.cpp:18:10
74 .loc 0 18 15 is_stmt 0 # main.cpp:18:15
76 .loc 0 18 20 # main.cpp:18:20
78 .loc 0 18 10 # main.cpp:18:10
80 movq
(%rax
,%rcx
,8), %rax
81 .loc 0 18 8 # main.cpp:18:8
83 .loc 0 19 10 is_stmt 1 # main.cpp:19:10
85 .loc 0 19 15 is_stmt 0 # main.cpp:19:15
87 .loc 0 19 20 # main.cpp:19:20
89 .loc 0 19 10 # main.cpp:19:10
91 movq
(%rax
,%rcx
,8), %rax
92 .loc 0 19 8 # main.cpp:19:8
94 .loc 0 20 3 is_stmt 1 # main.cpp:20:3
101 .size main, .Lfunc_end0-main
104 .section .debug_info.dwo,"e",@progbits
105 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
106 .Ldebug_info_dwo_start0:
107 .short 5 # DWARF version number
108 .byte 6 # DWARF Unit Type
109 .byte 8 # Address Size (in bytes)
110 .long 0 # Offset Into Abbrev. Section
111 .quad 7448148824980338162 # Type Signature
112 .long 31 # Type DIE Offset
113 .byte 1 # Abbrev [1] 0x18:0x33 DW_TAG_type_unit
114 .short 33 # DW_AT_language
115 .long 0 # DW_AT_stmt_list
116 .byte 2 # Abbrev [2] 0x1f:0x22 DW_TAG_structure_type
117 .byte 5 # DW_AT_calling_convention
119 .byte 24 # DW_AT_byte_size
120 .byte 0 # DW_AT_decl_file
121 .byte 1 # DW_AT_decl_line
122 .byte 3 # Abbrev [3] 0x25:0x9 DW_TAG_member
124 .long 65 # DW_AT_type
125 .byte 0 # DW_AT_decl_file
126 .byte 2 # DW_AT_decl_line
127 .byte 0 # DW_AT_data_member_location
128 .byte 3 # Abbrev [3] 0x2e:0x9 DW_TAG_member
130 .long 65 # DW_AT_type
131 .byte 0 # DW_AT_decl_file
132 .byte 3 # DW_AT_decl_line
133 .byte 8 # DW_AT_data_member_location
134 .byte 3 # Abbrev [3] 0x37:0x9 DW_TAG_member
136 .long 65 # DW_AT_type
137 .byte 0 # DW_AT_decl_file
138 .byte 4 # DW_AT_decl_line
139 .byte 16 # DW_AT_data_member_location
140 .byte 0 # End Of Children Mark
141 .byte 4 # Abbrev [4] 0x41:0x5 DW_TAG_pointer_type
142 .long 70 # DW_AT_type
143 .byte 5 # Abbrev [5] 0x46:0x4 DW_TAG_base_type
145 .byte 6 # DW_AT_encoding
146 .byte 1 # DW_AT_byte_size
147 .byte 0 # End Of Children Mark
148 .Ldebug_info_dwo_end0:
149 .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit
150 .Ldebug_info_dwo_start1:
151 .short 5 # DWARF version number
152 .byte 6 # DWARF Unit Type
153 .byte 8 # Address Size (in bytes)
154 .long 0 # Offset Into Abbrev. Section
155 .quad 5322170643381124694 # Type Signature
156 .long 31 # Type DIE Offset
157 .byte 1 # Abbrev [1] 0x18:0x2a DW_TAG_type_unit
158 .short 33 # DW_AT_language
159 .long 0 # DW_AT_stmt_list
160 .byte 2 # Abbrev [2] 0x1f:0x19 DW_TAG_structure_type
161 .byte 5 # DW_AT_calling_convention
162 .byte 11 # DW_AT_name
163 .byte 16 # DW_AT_byte_size
164 .byte 0 # DW_AT_decl_file
165 .byte 7 # DW_AT_decl_line
166 .byte 3 # Abbrev [3] 0x25:0x9 DW_TAG_member
168 .long 56 # DW_AT_type
169 .byte 0 # DW_AT_decl_file
170 .byte 8 # DW_AT_decl_line
171 .byte 0 # DW_AT_data_member_location
172 .byte 3 # Abbrev [3] 0x2e:0x9 DW_TAG_member
174 .long 56 # DW_AT_type
175 .byte 0 # DW_AT_decl_file
176 .byte 9 # DW_AT_decl_line
177 .byte 8 # DW_AT_data_member_location
178 .byte 0 # End Of Children Mark
179 .byte 4 # Abbrev [4] 0x38:0x5 DW_TAG_pointer_type
180 .long 61 # DW_AT_type
181 .byte 5 # Abbrev [5] 0x3d:0x4 DW_TAG_base_type
183 .byte 6 # DW_AT_encoding
184 .byte 1 # DW_AT_byte_size
185 .byte 0 # End Of Children Mark
186 .Ldebug_info_dwo_end1:
187 .section .debug_abbrev,"",@progbits
188 .byte 1 # Abbreviation Code
189 .byte 74 # DW_TAG_skeleton_unit
190 .byte 0 # DW_CHILDREN_no
191 .byte 16 # DW_AT_stmt_list
192 .byte 23 # DW_FORM_sec_offset
193 .byte 114 # DW_AT_str_offsets_base
194 .byte 23 # DW_FORM_sec_offset
195 .byte 27 # DW_AT_comp_dir
196 .byte 37 # DW_FORM_strx1
197 .ascii "\264B" # DW_AT_GNU_pubnames
198 .byte 25 # DW_FORM_flag_present
199 .byte 118 # DW_AT_dwo_name
200 .byte 37 # DW_FORM_strx1
201 .byte 17 # DW_AT_low_pc
202 .byte 27 # DW_FORM_addrx
203 .byte 18 # DW_AT_high_pc
204 .byte 6 # DW_FORM_data4
205 .byte 115 # DW_AT_addr_base
206 .byte 23 # DW_FORM_sec_offset
210 .section .debug_info,"",@progbits
212 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
214 .short 5 # DWARF version number
215 .byte 4 # DWARF Unit Type
216 .byte 8 # Address Size (in bytes)
217 .long .debug_abbrev # Offset Into Abbrev. Section
218 .quad 4780348136649610820
219 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
220 .long .Lline_table_start0 # DW_AT_stmt_list
221 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
222 .byte 0 # DW_AT_comp_dir
224 .byte 1 # DW_AT_dwo_name
225 .byte 0 # DW_AT_low_pc
226 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
227 .long .Laddr_table_base0 # DW_AT_addr_base
229 .section .debug_str_offsets,"",@progbits
230 .long 12 # Length of String Offsets Set
234 .section .debug_str,"MS",@progbits,1
236 .asciz "." # string offset=0
238 .asciz "main.dwo" # string offset=38
239 .section .debug_str_offsets,"",@progbits
242 .section .debug_str_offsets.dwo,"e",@progbits
243 .long 64 # Length of String Offsets Set
246 .section .debug_str.dwo,"eMS",@progbits,1
248 .asciz "main" # string offset=0
250 .asciz "int" # string offset=5
252 .asciz "argc" # string offset=9
254 .asciz "argv" # string offset=14
256 .asciz "char" # string offset=19
258 .asciz "f" # string offset=24
260 .asciz "c1" # string offset=26
262 .asciz "c2" # string offset=29
264 .asciz "c3" # string offset=32
266 .asciz "Foo" # string offset=35
268 .asciz "f2" # string offset=39
270 .asciz "Foo2" # string offset=42
272 .asciz "clang version 15.0.0" # string offset=47
274 .asciz "main.cpp" # string offset=68
276 .asciz "main.dwo" # string offset=77
277 .section .debug_str_offsets.dwo,"e",@progbits
293 .section .debug_info.dwo,"e",@progbits
294 .long .Ldebug_info_dwo_end2-.Ldebug_info_dwo_start2 # Length of Unit
295 .Ldebug_info_dwo_start2:
296 .short 5 # DWARF version number
297 .byte 5 # DWARF Unit Type
298 .byte 8 # Address Size (in bytes)
299 .long 0 # Offset Into Abbrev. Section
300 .quad 4780348136649610820
301 .byte 6 # Abbrev [6] 0x14:0x67 DW_TAG_compile_unit
302 .byte 12 # DW_AT_producer
303 .short 33 # DW_AT_language
304 .byte 13 # DW_AT_name
305 .byte 14 # DW_AT_dwo_name
306 .byte 7 # Abbrev [7] 0x1a:0x3c DW_TAG_subprogram
307 .byte 0 # DW_AT_low_pc
308 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
309 .byte 1 # DW_AT_frame_base
312 .byte 0 # DW_AT_decl_file
313 .byte 12 # DW_AT_decl_line
314 .long 86 # DW_AT_type
316 .byte 8 # Abbrev [8] 0x29:0xb DW_TAG_formal_parameter
317 .byte 2 # DW_AT_location
321 .byte 0 # DW_AT_decl_file
322 .byte 12 # DW_AT_decl_line
323 .long 86 # DW_AT_type
324 .byte 8 # Abbrev [8] 0x34:0xb DW_TAG_formal_parameter
325 .byte 2 # DW_AT_location
329 .byte 0 # DW_AT_decl_file
330 .byte 12 # DW_AT_decl_line
331 .long 90 # DW_AT_type
332 .byte 9 # Abbrev [9] 0x3f:0xb DW_TAG_variable
333 .byte 2 # DW_AT_location
337 .byte 0 # DW_AT_decl_file
338 .byte 13 # DW_AT_decl_line
339 .long 104 # DW_AT_type
340 .byte 9 # Abbrev [9] 0x4a:0xb DW_TAG_variable
341 .byte 2 # DW_AT_location
344 .byte 10 # DW_AT_name
345 .byte 0 # DW_AT_decl_file
346 .byte 17 # DW_AT_decl_line
347 .long 113 # DW_AT_type
348 .byte 0 # End Of Children Mark
349 .byte 5 # Abbrev [5] 0x56:0x4 DW_TAG_base_type
351 .byte 5 # DW_AT_encoding
352 .byte 4 # DW_AT_byte_size
353 .byte 4 # Abbrev [4] 0x5a:0x5 DW_TAG_pointer_type
354 .long 95 # DW_AT_type
355 .byte 4 # Abbrev [4] 0x5f:0x5 DW_TAG_pointer_type
356 .long 100 # DW_AT_type
357 .byte 5 # Abbrev [5] 0x64:0x4 DW_TAG_base_type
359 .byte 6 # DW_AT_encoding
360 .byte 1 # DW_AT_byte_size
361 .byte 10 # Abbrev [10] 0x68:0x9 DW_TAG_structure_type
363 .quad 7448148824980338162 # DW_AT_signature
364 .byte 10 # Abbrev [10] 0x71:0x9 DW_TAG_structure_type
366 .quad 5322170643381124694 # DW_AT_signature
367 .byte 0 # End Of Children Mark
368 .Ldebug_info_dwo_end2:
369 .section .debug_abbrev.dwo,"e",@progbits
370 .byte 1 # Abbreviation Code
371 .byte 65 # DW_TAG_type_unit
372 .byte 1 # DW_CHILDREN_yes
373 .byte 19 # DW_AT_language
374 .byte 5 # DW_FORM_data2
375 .byte 16 # DW_AT_stmt_list
376 .byte 23 # DW_FORM_sec_offset
379 .byte 2 # Abbreviation Code
380 .byte 19 # DW_TAG_structure_type
381 .byte 1 # DW_CHILDREN_yes
382 .byte 54 # DW_AT_calling_convention
383 .byte 11 # DW_FORM_data1
385 .byte 37 # DW_FORM_strx1
386 .byte 11 # DW_AT_byte_size
387 .byte 11 # DW_FORM_data1
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
394 .byte 3 # Abbreviation Code
395 .byte 13 # DW_TAG_member
396 .byte 0 # DW_CHILDREN_no
398 .byte 37 # DW_FORM_strx1
399 .byte 73 # DW_AT_type
400 .byte 19 # DW_FORM_ref4
401 .byte 58 # DW_AT_decl_file
402 .byte 11 # DW_FORM_data1
403 .byte 59 # DW_AT_decl_line
404 .byte 11 # DW_FORM_data1
405 .byte 56 # DW_AT_data_member_location
406 .byte 11 # DW_FORM_data1
409 .byte 4 # Abbreviation Code
410 .byte 15 # DW_TAG_pointer_type
411 .byte 0 # DW_CHILDREN_no
412 .byte 73 # DW_AT_type
413 .byte 19 # DW_FORM_ref4
416 .byte 5 # Abbreviation Code
417 .byte 36 # DW_TAG_base_type
418 .byte 0 # DW_CHILDREN_no
420 .byte 37 # DW_FORM_strx1
421 .byte 62 # DW_AT_encoding
422 .byte 11 # DW_FORM_data1
423 .byte 11 # DW_AT_byte_size
424 .byte 11 # DW_FORM_data1
427 .byte 6 # Abbreviation Code
428 .byte 17 # DW_TAG_compile_unit
429 .byte 1 # DW_CHILDREN_yes
430 .byte 37 # DW_AT_producer
431 .byte 37 # DW_FORM_strx1
432 .byte 19 # DW_AT_language
433 .byte 5 # DW_FORM_data2
435 .byte 37 # DW_FORM_strx1
436 .byte 118 # DW_AT_dwo_name
437 .byte 37 # DW_FORM_strx1
440 .byte 7 # Abbreviation Code
441 .byte 46 # DW_TAG_subprogram
442 .byte 1 # DW_CHILDREN_yes
443 .byte 17 # DW_AT_low_pc
444 .byte 27 # DW_FORM_addrx
445 .byte 18 # DW_AT_high_pc
446 .byte 6 # DW_FORM_data4
447 .byte 64 # DW_AT_frame_base
448 .byte 24 # DW_FORM_exprloc
450 .byte 37 # DW_FORM_strx1
451 .byte 58 # DW_AT_decl_file
452 .byte 11 # DW_FORM_data1
453 .byte 59 # DW_AT_decl_line
454 .byte 11 # DW_FORM_data1
455 .byte 73 # DW_AT_type
456 .byte 19 # DW_FORM_ref4
457 .byte 63 # DW_AT_external
458 .byte 25 # DW_FORM_flag_present
461 .byte 8 # Abbreviation Code
462 .byte 5 # DW_TAG_formal_parameter
463 .byte 0 # DW_CHILDREN_no
464 .byte 2 # DW_AT_location
465 .byte 24 # DW_FORM_exprloc
467 .byte 37 # DW_FORM_strx1
468 .byte 58 # DW_AT_decl_file
469 .byte 11 # DW_FORM_data1
470 .byte 59 # DW_AT_decl_line
471 .byte 11 # DW_FORM_data1
472 .byte 73 # DW_AT_type
473 .byte 19 # DW_FORM_ref4
476 .byte 9 # Abbreviation Code
477 .byte 52 # DW_TAG_variable
478 .byte 0 # DW_CHILDREN_no
479 .byte 2 # DW_AT_location
480 .byte 24 # DW_FORM_exprloc
482 .byte 37 # DW_FORM_strx1
483 .byte 58 # DW_AT_decl_file
484 .byte 11 # DW_FORM_data1
485 .byte 59 # DW_AT_decl_line
486 .byte 11 # DW_FORM_data1
487 .byte 73 # DW_AT_type
488 .byte 19 # DW_FORM_ref4
491 .byte 10 # Abbreviation Code
492 .byte 19 # DW_TAG_structure_type
493 .byte 0 # DW_CHILDREN_no
494 .byte 60 # DW_AT_declaration
495 .byte 25 # DW_FORM_flag_present
496 .byte 105 # DW_AT_signature
497 .byte 32 # DW_FORM_ref_sig8
501 .section .debug_line.dwo,"e",@progbits
503 .long .Ldebug_line_end0-.Ldebug_line_start0 # unit length
508 .long .Lprologue_end0-.Lprologue_start0
520 .ascii "/home/ayermolo/local/tasks/T104766233"
533 .byte 0xa8, 0x32, 0xf4, 0x64
534 .byte 0xc8, 0x53, 0xbe, 0x0f
535 .byte 0x9c, 0x52, 0xda, 0x29
536 .byte 0xcd, 0x91, 0x38, 0x07
539 .section .debug_addr,"",@progbits
540 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
542 .short 5 # DWARF version number
543 .byte 8 # Address size
544 .byte 0 # Segment selector size
548 .section .debug_gnu_pubnames,"",@progbits
549 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
551 .short 2 # DWARF Version
552 .long .Lcu_begin0 # Offset of Compilation Unit Info
553 .long 40 # Compilation Unit Length
554 .long 26 # DIE offset
555 .byte 48 # Attributes: FUNCTION, EXTERNAL
556 .asciz "main" # External Name
559 .section .debug_gnu_pubtypes,"",@progbits
560 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
562 .short 2 # DWARF Version
563 .long .Lcu_begin0 # Offset of Compilation Unit Info
564 .long 40 # Compilation Unit Length
565 .long 104 # DIE offset
566 .byte 16 # Attributes: TYPE, EXTERNAL
567 .asciz "Foo" # External Name
568 .long 113 # DIE offset
569 .byte 16 # Attributes: TYPE, EXTERNAL
570 .asciz "Foo2" # External Name
571 .long 86 # DIE offset
572 .byte 144 # Attributes: TYPE, STATIC
573 .asciz "int" # External Name
574 .long 100 # DIE offset
575 .byte 144 # Attributes: TYPE, STATIC
576 .asciz "char" # External Name
579 .ident "clang version 15.0.0"
580 .section ".note.GNU-stack","",@progbits
582 .section .debug_line,"",@progbits