1 /* This testcase is part of GDB, the GNU debugger.
3 Copyright 2012-2019 Free Software Foundation, Inc.
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
18 This file was created by doing:
19 gcc -gdwarf-4 -gsplit-debug -S -dA fission-base.c
20 and then massaging the output.
23 .file "fission-base.c"
32 .file 1 "fission-base.c"
37 .cfi_def_cfa_offset 16
40 .cfi_def_cfa_register 6
41 movl %edi, -4(%rbp) # arg, arg
44 movl -4(%rbp), %eax # arg, tmp61
45 addl $1, %eax #, D.1617
62 .cfi_def_cfa_offset 16
65 .cfi_def_cfa_register 6
79 .section .debug_info.dwo,"e",@progbits
81 .4byte .Ldebug_info0_end - .Ldebug_info0 - 4 # Length of Compilation Unit Info
82 .2byte 0x4 # DWARF version number
83 .4byte .Ldebug_abbrev0 # Offset Into Abbrev. Section
84 .byte 0x8 # Pointer Size (in bytes)
85 .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
86 .ascii "GNU C 4.6.x-fission\0" # DW_AT_producer
87 .byte 0x1 # DW_AT_language
88 .ascii "fission-base.c\0" # DW_AT_name
89 .ascii "/tmp/src/gdb/testsuite\0" # DW_AT_comp_dir
90 .byte 1 # DW_AT_GNU_dwo_id
98 .uleb128 0x2 # (DIE (0x89) DW_TAG_subprogram)
100 .ascii "func\0" # DW_AT_name
101 .byte 0x1 # DW_AT_decl_file (fission-base.c)
102 .byte 0x13 # DW_AT_decl_line
104 .4byte .Ldebug_info0_int - .Ldebug_info0 # DW_AT_type
105 .4byte 0x0 # DW_AT_ranges
106 .uleb128 0x1 # DW_AT_frame_base
107 .byte 0x9c # DW_OP_call_frame_cfa
108 .4byte .Ldebug_info0_int - .Ldebug_info0 # DW_AT_sibling
109 .uleb128 0x3 # (DIE (0xa4) DW_TAG_formal_parameter)
110 .ascii "arg\0" # DW_AT_name
111 .byte 0x1 # DW_AT_decl_file (fission-base.c)
112 .byte 0x13 # DW_AT_decl_line
113 .4byte .Ldebug_info0_int - .Ldebug_info0 # DW_AT_type
114 .uleb128 0x2 # DW_AT_location
115 .byte 0x91 # DW_OP_fbreg
117 .byte 0 # end of children of DIE 0x89
119 .uleb128 0x4 # (DIE (0xb3) DW_TAG_base_type)
120 .byte 0x4 # DW_AT_byte_size
121 .byte 0x5 # DW_AT_encoding
122 .ascii "int\0" # DW_AT_name
123 .uleb128 0x5 # (DIE (0xba) DW_TAG_subprogram)
125 .ascii "main\0" # DW_AT_name
126 .byte 0x1 # DW_AT_decl_file (fission-base.c)
127 .byte 0x19 # DW_AT_decl_line
128 .4byte .Ldebug_info0_int - .Ldebug_info0 # DW_AT_type
129 .uleb128 0x1 # DW_AT_low_pc
130 .8byte .LFE1-.LFB1 # DW_AT_high_pc
131 .uleb128 0x1 # DW_AT_frame_base
132 .byte 0x9c # DW_OP_call_frame_cfa
133 .byte 0 # end of children of DIE 0xb
135 .section .debug_info,"",@progbits
136 .Lskeleton_debug_info0:
137 .4byte .Lskeleton_debug_info0_end - .Lskeleton_debug_info0 - 4 # Length of Compilation Unit Info
138 .2byte 0x4 # DWARF version number
139 .4byte .Lskeleton_debug_abbrev0 # Offset Into Abbrev. Section
140 .byte 0x8 # Pointer Size (in bytes)
141 .uleb128 0x1 # (DIE (0) DW_TAG_compile_unit)
142 .8byte .Ltext0 # DW_AT_low_pc
143 .8byte .Letext0-.Ltext0 # DW_AT_high_pc
144 .4byte .Ldebug_line0 # DW_AT_stmt_list
145 .ascii "/tmp/src/gdb/testsuite\0" # DW_AT_comp_dir
146 .ascii "fission-base.dwo\0" # DW_AT_GNU_dwo_name
147 .4byte .Ldebug_pubnames0 # DW_AT_GNU_pubnames
148 .4byte .Ldebug_pubtypes0 # DW_AT_GNU_pubtypes
149 .4byte .Ldebug_addr0_begin # DW_AT_GNU_addr_base
150 .4byte .Ldebug_ranges0_begin # DW_AT_GNU_ranges_base
151 .byte 1 # DW_AT_GNU_dwo_id
159 .Lskeleton_debug_info0_end:
160 .section .debug_abbrev,"",@progbits
161 .Lskeleton_debug_abbrev0:
162 .uleb128 0x1 # (abbrev code)
163 .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
164 .byte 0 # DW_children_no
165 .uleb128 0x11 # (DW_AT_low_pc)
166 .uleb128 0x1 # (DW_FORM_addr)
167 .uleb128 0x12 # (DW_AT_high_pc)
168 .uleb128 0x7 # (DW_FORM_data8)
169 .uleb128 0x10 # (DW_AT_stmt_list)
170 .uleb128 0x17 # (DW_FORM_sec_offset)
171 .uleb128 0x1b # (DW_AT_comp_dir)
172 .uleb128 0x8 # (DW_FORM_string)
173 .uleb128 0x2130 # (DW_AT_GNU_dwo_name)
174 .uleb128 0x8 # (DW_FORM_string)
175 .uleb128 0x2134 # (DW_AT_GNU_pubnames)
176 .uleb128 0x17 # (DW_FORM_sec_offset)
177 .uleb128 0x2135 # (DW_AT_GNU_pubtypes)
178 .uleb128 0x17 # (DW_FORM_sec_offset)
179 .uleb128 0x2133 # (DW_AT_GNU_addr_base)
180 .uleb128 0x17 # (DW_FORM_sec_offset)
181 .uleb128 0x2132 # (DW_AT_GNU_ranges_base)
182 .uleb128 0x17 # (DW_FORM_sec_offset)
183 .uleb128 0x2131 # (DW_AT_GNU_dwo_id)
184 .uleb128 0x7 # (DW_FORM_data8)
187 .byte 0 # end of skeleton .debug_abbrev
188 .section .debug_abbrev.dwo,"e",@progbits
190 .uleb128 0x1 # (abbrev code)
191 .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
192 .byte 0x1 # DW_children_yes
193 .uleb128 0x25 # (DW_AT_producer)
194 .uleb128 0x8 # (DW_FORM_string)
195 .uleb128 0x13 # (DW_AT_language)
196 .uleb128 0xb # (DW_FORM_data1)
197 .uleb128 0x3 # (DW_AT_name)
198 .uleb128 0x8 # (DW_FORM_string)
199 .uleb128 0x1b # (DW_AT_comp_dir)
200 .uleb128 0x8 # (DW_FORM_string)
201 .uleb128 0x2131 # (DW_AT_GNU_dwo_id)
202 .uleb128 0x7 # (DW_FORM_data8)
205 .uleb128 0x2 # (abbrev code)
206 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
207 .byte 0x1 # DW_children_yes
208 .uleb128 0x3f # (DW_AT_external)
209 .uleb128 0x19 # (DW_FORM_flag_present)
210 .uleb128 0x3 # (DW_AT_name)
211 .uleb128 0x8 # (DW_FORM_string)
212 .uleb128 0x3a # (DW_AT_decl_file)
213 .uleb128 0xb # (DW_FORM_data1)
214 .uleb128 0x3b # (DW_AT_decl_line)
215 .uleb128 0xb # (DW_FORM_data1)
216 .uleb128 0x27 # (DW_AT_prototyped)
217 .uleb128 0x19 # (DW_FORM_flag_present)
218 .uleb128 0x49 # (DW_AT_type)
219 .uleb128 0x13 # (DW_FORM_ref4)
220 .uleb128 0x55 # (DW_AT_ranges)
221 .uleb128 0x17 # (DW_FORM_sec_offset)
222 .uleb128 0x40 # (DW_AT_frame_base)
223 .uleb128 0x18 # (DW_FORM_exprloc)
224 .uleb128 0x1 # (DW_AT_sibling)
225 .uleb128 0x13 # (DW_FORM_ref4)
228 .uleb128 0x3 # (abbrev code)
229 .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
230 .byte 0 # DW_children_no
231 .uleb128 0x3 # (DW_AT_name)
232 .uleb128 0x8 # (DW_FORM_string)
233 .uleb128 0x3a # (DW_AT_decl_file)
234 .uleb128 0xb # (DW_FORM_data1)
235 .uleb128 0x3b # (DW_AT_decl_line)
236 .uleb128 0xb # (DW_FORM_data1)
237 .uleb128 0x49 # (DW_AT_type)
238 .uleb128 0x13 # (DW_FORM_ref4)
239 .uleb128 0x2 # (DW_AT_location)
240 .uleb128 0x18 # (DW_FORM_exprloc)
243 .uleb128 0x4 # (abbrev code)
244 .uleb128 0x24 # (TAG: DW_TAG_base_type)
245 .byte 0 # DW_children_no
246 .uleb128 0xb # (DW_AT_byte_size)
247 .uleb128 0xb # (DW_FORM_data1)
248 .uleb128 0x3e # (DW_AT_encoding)
249 .uleb128 0xb # (DW_FORM_data1)
250 .uleb128 0x3 # (DW_AT_name)
251 .uleb128 0x8 # (DW_FORM_string)
254 .uleb128 0x5 # (abbrev code)
255 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
256 .byte 0 # DW_children_no
257 .uleb128 0x3f # (DW_AT_external)
258 .uleb128 0x19 # (DW_FORM_flag_present)
259 .uleb128 0x3 # (DW_AT_name)
260 .uleb128 0x8 # (DW_FORM_string)
261 .uleb128 0x3a # (DW_AT_decl_file)
262 .uleb128 0xb # (DW_FORM_data1)
263 .uleb128 0x3b # (DW_AT_decl_line)
264 .uleb128 0xb # (DW_FORM_data1)
265 .uleb128 0x49 # (DW_AT_type)
266 .uleb128 0x13 # (DW_FORM_ref4)
267 .uleb128 0x11 # (DW_AT_low_pc)
268 .uleb128 0x1f01 # (DW_FORM_GNU_addr_index)
269 .uleb128 0x12 # (DW_AT_high_pc)
270 .uleb128 0x7 # (DW_FORM_data8)
271 .uleb128 0x40 # (DW_AT_frame_base)
272 .uleb128 0x18 # (DW_FORM_exprloc)
276 .section .debug_gnu_pubnames,"",@progbits
278 .long 0x22 # Pub Info Length
279 .value 0x2 # DWARF Version
280 .long .Lskeleton_debug_info0 # Offset of Compilation Unit Info
281 .long 0x59 # Compilation Unit Length
282 .long 0x18 # DIE offset
283 .byte 0x30 # GDB-index flags
284 .ascii "func\0" # external name
285 .long 0x45 # DIE offset
286 .byte 0x30 # GDB-index flags
287 .ascii "main\0" # external name
289 .section .debug_gnu_pubtypes,"",@progbits
291 .long 0x17 # Pub Info Length
292 .value 0x2 # DWARF Version
293 .long .Lskeleton_debug_info0 # Offset of Compilation Unit Info
294 .long 0x59 # Compilation Unit Length
295 .long 0x3e # DIE offset
296 .byte 0x90 # GDB-index flags
297 .ascii "int\0" # external name
299 .section .debug_aranges,"",@progbits
300 .4byte 0x2c # Length of Address Ranges Info
301 .2byte 0x2 # DWARF Version
302 .4byte .Lskeleton_debug_info0 # Offset of Compilation Unit Info
303 .byte 0x8 # Size of Address
304 .byte 0 # Size of Segment Descriptor
305 .2byte 0 # Pad to 16 byte boundary
307 .8byte .Ltext0 # Address
308 .8byte .Letext0-.Ltext0 # Length
311 .section .debug_line,"",@progbits
313 .section .debug_line.dwo,"e",@progbits
314 .Lskeleton_debug_line0:
315 .4byte .LELT0-.LSLT0 # Length of Source Line Info
317 .2byte 0x4 # DWARF Version
318 .4byte .LELTP0-.LASLTP0 # Prolog Length
320 .byte 0x1 # Minimum Instruction Length
321 .byte 0x1 # Maximum Operations Per Instruction
322 .byte 0x1 # Default is_stmt_start flag
323 .byte 0xf6 # Line Base Value (Special Opcodes)
324 .byte 0xf5 # Line Range Value (Special Opcodes)
325 .byte 0xa # Special Opcode Base
326 .byte 0 # opcode: 0x1 has 0 args
327 .byte 0x1 # opcode: 0x2 has 1 args
328 .byte 0x1 # opcode: 0x3 has 1 args
329 .byte 0x1 # opcode: 0x4 has 1 args
330 .byte 0x1 # opcode: 0x5 has 1 args
331 .byte 0 # opcode: 0x6 has 0 args
332 .byte 0 # opcode: 0x7 has 0 args
333 .byte 0 # opcode: 0x8 has 0 args
334 .byte 0x1 # opcode: 0x9 has 1 args
335 .byte 0 # End directory table
336 .ascii "fission-base.c\0" # File Entry: 0x1
340 .byte 0 # End file name table
343 .section .debug_addr,"",@progbits
345 # Shift the real entries down by a non-zero amount to test
346 # DW_AT_GNU_addr_base.
349 .8byte .LFB0 # DW_AT_low_pc
350 .8byte .LFB1 # DW_AT_low_pc
352 .section .debug_ranges,"",@progbits
354 # Shift the real entries down by a non-zero amount to test
355 # DW_AT_GNU_ranges_base.
357 .Ldebug_ranges0_begin:
358 # Note: Since the DW_TAG_compile_unit specifies low_pc, that sets
359 # the base address, and thus we have to subtract it here.
360 .8byte .LFB0 - .Ltext0 # Offset 0
361 .8byte .LFE0 - .Ltext0
365 .section .note.GNU-stack,"",@progbits