4 # int main(int argc, char** argv) {
13 # clang++ -g tiny.cc -S -o tiny.s
17 .globl _Z1av # -- Begin function _Z1av
23 .loc 1 1 0 # tiny.cc:1:0
27 .cfi_def_cfa_offset 16
30 .cfi_def_cfa_register %rbp
32 .loc 1 1 11 prologue_end # tiny.cc:1:11
38 .size _Z1av, .Lfunc_end0-_Z1av
41 .globl _Z1bv # -- Begin function _Z1bv
46 .loc 1 2 0 # tiny.cc:2:0
50 .cfi_def_cfa_offset 16
53 .cfi_def_cfa_register %rbp
55 .loc 1 2 11 prologue_end # tiny.cc:2:11
61 .size _Z1bv, .Lfunc_end1-_Z1bv
64 .globl main # -- Begin function main
69 .loc 1 4 0 # tiny.cc:4:0
73 .cfi_def_cfa_offset 16
76 .cfi_def_cfa_register %rbp
82 .loc 1 6 12 prologue_end # tiny.cc:6:12
85 .loc 1 6 7 is_stmt 0 # tiny.cc:6:7
88 .loc 1 0 7 # tiny.cc:0:7
91 .loc 1 7 9 is_stmt 1 # tiny.cc:7:9
93 .loc 1 7 5 is_stmt 0 # tiny.cc:7:5
96 .loc 1 0 5 # tiny.cc:0:5
98 .loc 1 9 9 is_stmt 1 # tiny.cc:9:9
102 .loc 1 11 3 # tiny.cc:11:3
104 .loc 1 12 1 # tiny.cc:12:1
112 .size main, .Lfunc_end2-main
115 .section .debug_str,"MS",@progbits,1
117 .asciz "clang version 6.0.0 (trunk 317104)" # string offset=0
119 .asciz "tiny.cc" # string offset=35
121 .asciz "/tmp/a/b" # string offset=43
123 .asciz "_Z1av" # string offset=52
125 .asciz "a" # string offset=58
127 .asciz "_Z1bv" # string offset=60
129 .asciz "b" # string offset=66
131 .asciz "main" # string offset=68
133 .asciz "int" # string offset=73
135 .asciz "argc" # string offset=77
137 .asciz "argv" # string offset=82
139 .asciz "char" # string offset=87
141 .asciz "ptr" # string offset=92
142 .section .debug_abbrev,"",@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 14 # DW_FORM_strp
148 .byte 19 # DW_AT_language
149 .byte 5 # DW_FORM_data2
151 .byte 14 # DW_FORM_strp
152 .byte 16 # DW_AT_stmt_list
153 .byte 23 # DW_FORM_sec_offset
154 .byte 27 # DW_AT_comp_dir
155 .byte 14 # DW_FORM_strp
156 .ascii "\264B" # DW_AT_GNU_pubnames
157 .byte 25 # DW_FORM_flag_present
158 .byte 17 # DW_AT_low_pc
159 .byte 1 # DW_FORM_addr
160 .byte 18 # DW_AT_high_pc
161 .byte 6 # DW_FORM_data4
164 .byte 2 # Abbreviation Code
165 .byte 46 # DW_TAG_subprogram
166 .byte 0 # DW_CHILDREN_no
167 .byte 17 # DW_AT_low_pc
168 .byte 1 # DW_FORM_addr
169 .byte 18 # DW_AT_high_pc
170 .byte 6 # DW_FORM_data4
171 .byte 64 # DW_AT_frame_base
172 .byte 24 # DW_FORM_exprloc
173 .byte 110 # DW_AT_linkage_name
174 .byte 14 # DW_FORM_strp
176 .byte 14 # DW_FORM_strp
177 .byte 58 # DW_AT_decl_file
178 .byte 11 # DW_FORM_data1
179 .byte 59 # DW_AT_decl_line
180 .byte 11 # DW_FORM_data1
181 .byte 63 # DW_AT_external
182 .byte 25 # DW_FORM_flag_present
185 .byte 3 # Abbreviation Code
186 .byte 46 # DW_TAG_subprogram
187 .byte 1 # DW_CHILDREN_yes
188 .byte 17 # DW_AT_low_pc
189 .byte 1 # DW_FORM_addr
190 .byte 18 # DW_AT_high_pc
191 .byte 6 # DW_FORM_data4
192 .byte 64 # DW_AT_frame_base
193 .byte 24 # DW_FORM_exprloc
195 .byte 14 # DW_FORM_strp
196 .byte 58 # DW_AT_decl_file
197 .byte 11 # DW_FORM_data1
198 .byte 59 # DW_AT_decl_line
199 .byte 11 # DW_FORM_data1
200 .byte 73 # DW_AT_type
201 .byte 19 # DW_FORM_ref4
202 .byte 63 # DW_AT_external
203 .byte 25 # DW_FORM_flag_present
206 .byte 4 # Abbreviation Code
207 .byte 5 # DW_TAG_formal_parameter
208 .byte 0 # DW_CHILDREN_no
209 .byte 2 # DW_AT_location
210 .byte 24 # DW_FORM_exprloc
212 .byte 14 # DW_FORM_strp
213 .byte 58 # DW_AT_decl_file
214 .byte 11 # DW_FORM_data1
215 .byte 59 # DW_AT_decl_line
216 .byte 11 # DW_FORM_data1
217 .byte 73 # DW_AT_type
218 .byte 19 # DW_FORM_ref4
221 .byte 5 # Abbreviation Code
222 .byte 52 # DW_TAG_variable
223 .byte 0 # DW_CHILDREN_no
224 .byte 2 # DW_AT_location
225 .byte 24 # DW_FORM_exprloc
227 .byte 14 # DW_FORM_strp
228 .byte 58 # DW_AT_decl_file
229 .byte 11 # DW_FORM_data1
230 .byte 59 # DW_AT_decl_line
231 .byte 11 # DW_FORM_data1
232 .byte 73 # DW_AT_type
233 .byte 19 # DW_FORM_ref4
236 .byte 6 # Abbreviation Code
237 .byte 36 # DW_TAG_base_type
238 .byte 0 # DW_CHILDREN_no
240 .byte 14 # DW_FORM_strp
241 .byte 62 # DW_AT_encoding
242 .byte 11 # DW_FORM_data1
243 .byte 11 # DW_AT_byte_size
244 .byte 11 # DW_FORM_data1
247 .byte 7 # Abbreviation Code
248 .byte 15 # DW_TAG_pointer_type
249 .byte 0 # DW_CHILDREN_no
250 .byte 73 # DW_AT_type
251 .byte 19 # DW_FORM_ref4
254 .byte 8 # Abbreviation Code
255 .byte 21 # DW_TAG_subroutine_type
256 .byte 0 # DW_CHILDREN_no
260 .section .debug_info,"",@progbits
262 .long 187 # Length of Unit
263 .short 4 # DWARF version number
264 .long .debug_abbrev # Offset Into Abbrev. Section
265 .byte 8 # Address Size (in bytes)
266 .byte 1 # Abbrev [1] 0xb:0xb4 DW_TAG_compile_unit
267 .long .Linfo_string0 # DW_AT_producer
268 .short 4 # DW_AT_language
269 .long .Linfo_string1 # DW_AT_name
270 .long .Lline_table_start0 # DW_AT_stmt_list
271 .long .Linfo_string2 # DW_AT_comp_dir
273 .quad .Lfunc_begin0 # DW_AT_low_pc
274 .long .Lfunc_end2-.Lfunc_begin0 # DW_AT_high_pc
275 .byte 2 # Abbrev [2] 0x2a:0x19 DW_TAG_subprogram
276 .quad .Lfunc_begin0 # DW_AT_low_pc
277 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
278 .byte 1 # DW_AT_frame_base
280 .long .Linfo_string3 # DW_AT_linkage_name
281 .long .Linfo_string4 # DW_AT_name
282 .byte 1 # DW_AT_decl_file
283 .byte 1 # DW_AT_decl_line
285 .byte 2 # Abbrev [2] 0x43:0x19 DW_TAG_subprogram
286 .quad .Lfunc_begin1 # DW_AT_low_pc
287 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
288 .byte 1 # DW_AT_frame_base
290 .long .Linfo_string5 # DW_AT_linkage_name
291 .long .Linfo_string6 # DW_AT_name
292 .byte 1 # DW_AT_decl_file
293 .byte 2 # DW_AT_decl_line
295 .byte 3 # Abbrev [3] 0x5c:0x44 DW_TAG_subprogram
296 .quad .Lfunc_begin2 # DW_AT_low_pc
297 .long .Lfunc_end2-.Lfunc_begin2 # DW_AT_high_pc
298 .byte 1 # DW_AT_frame_base
300 .long .Linfo_string7 # DW_AT_name
301 .byte 1 # DW_AT_decl_file
302 .byte 4 # DW_AT_decl_line
303 .long 160 # DW_AT_type
305 .byte 4 # Abbrev [4] 0x75:0xe DW_TAG_formal_parameter
306 .byte 2 # DW_AT_location
309 .long .Linfo_string9 # DW_AT_name
310 .byte 1 # DW_AT_decl_file
311 .byte 4 # DW_AT_decl_line
312 .long 160 # DW_AT_type
313 .byte 4 # Abbrev [4] 0x83:0xe DW_TAG_formal_parameter
314 .byte 2 # DW_AT_location
317 .long .Linfo_string10 # DW_AT_name
318 .byte 1 # DW_AT_decl_file
319 .byte 4 # DW_AT_decl_line
320 .long 167 # DW_AT_type
321 .byte 5 # Abbrev [5] 0x91:0xe DW_TAG_variable
322 .byte 2 # DW_AT_location
325 .long .Linfo_string12 # DW_AT_name
326 .byte 1 # DW_AT_decl_file
327 .byte 5 # DW_AT_decl_line
328 .long 184 # DW_AT_type
329 .byte 0 # End Of Children Mark
330 .byte 6 # Abbrev [6] 0xa0:0x7 DW_TAG_base_type
331 .long .Linfo_string8 # DW_AT_name
332 .byte 5 # DW_AT_encoding
333 .byte 4 # DW_AT_byte_size
334 .byte 7 # Abbrev [7] 0xa7:0x5 DW_TAG_pointer_type
335 .long 172 # DW_AT_type
336 .byte 7 # Abbrev [7] 0xac:0x5 DW_TAG_pointer_type
337 .long 177 # DW_AT_type
338 .byte 6 # Abbrev [6] 0xb1:0x7 DW_TAG_base_type
339 .long .Linfo_string11 # DW_AT_name
340 .byte 6 # DW_AT_encoding
341 .byte 1 # DW_AT_byte_size
342 .byte 7 # Abbrev [7] 0xb8:0x5 DW_TAG_pointer_type
343 .long 189 # DW_AT_type
344 .byte 8 # Abbrev [8] 0xbd:0x1 DW_TAG_subroutine_type
345 .byte 0 # End Of Children Mark
346 .section .debug_ranges,"",@progbits
347 .section .debug_macinfo,"",@progbits
349 .byte 0 # End Of Macro List Mark
350 .section .debug_pubnames,"",@progbits
351 .long .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
353 .short 2 # DWARF Version
354 .long .Lcu_begin0 # Offset of Compilation Unit Info
355 .long 191 # Compilation Unit Length
356 .long 42 # DIE offset
357 .asciz "a" # External Name
358 .long 67 # DIE offset
359 .asciz "b" # External Name
360 .long 92 # DIE offset
361 .asciz "main" # External Name
364 .section .debug_pubtypes,"",@progbits
365 .long .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
367 .short 2 # DWARF Version
368 .long .Lcu_begin0 # Offset of Compilation Unit Info
369 .long 191 # Compilation Unit Length
370 .long 160 # DIE offset
371 .asciz "int" # External Name
372 .long 177 # DIE offset
373 .asciz "char" # External Name
377 .ident "clang version 6.0.0 (trunk 317104)"
378 .section ".note.GNU-stack","",@progbits
379 .section .debug_line,"",@progbits