1 /* This testcase is part of GDB, the GNU debugger.
3 Copyright 2012-2013 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,"",@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 "gdb.dwarf2/fission-base.c\0" # DW_AT_name
89 .ascii "/tmp/src/gdb/testsuite\0" # DW_AT_comp_dir
90 .byte 0 # 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 # 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 # 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 # 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 # 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 # Normally dwo_name would be "fission-base.dwo".
147 # Simplification: Leave the DWO contents in the executable.
148 # "gdb.dwarf2/" is included so that gdb can load the file without
149 # having to set "debug-file-directory". This is useful when
150 # testing with cc-with-tweaks.sh -i.
151 .ascii "gdb.dwarf2/fission-base\0" # DW_AT_GNU_dwo_name
152 .4byte .Ldebug_pubnames0 # DW_AT_GNU_pubnames
153 .4byte .Ldebug_pubtypes0 # DW_AT_GNU_pubtypes
154 .4byte .Ldebug_addr0_begin # DW_AT_GNU_addr_base
155 .4byte .Ldebug_ranges0_begin # DW_AT_GNU_ranges_base
156 .byte 0 # DW_AT_GNU_dwo_id
164 .Lskeleton_debug_info0_end:
165 .section .debug_abbrev,"",@progbits
166 .Lskeleton_debug_abbrev0:
167 .uleb128 0x1 # (abbrev code)
168 .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
169 .byte 0 # DW_children_no
170 .uleb128 0x11 # (DW_AT_low_pc)
171 .uleb128 0x1 # (DW_FORM_addr)
172 .uleb128 0x12 # (DW_AT_high_pc)
173 .uleb128 0x7 # (DW_FORM_data8)
174 .uleb128 0x10 # (DW_AT_stmt_list)
175 .uleb128 0x17 # (DW_FORM_sec_offset)
176 .uleb128 0x1b # (DW_AT_comp_dir)
177 .uleb128 0x8 # (DW_FORM_string)
178 .uleb128 0x2130 # (DW_AT_GNU_dwo_name)
179 .uleb128 0x8 # (DW_FORM_string)
180 .uleb128 0x2134 # (DW_AT_GNU_pubnames)
181 .uleb128 0x17 # (DW_FORM_sec_offset)
182 .uleb128 0x2135 # (DW_AT_GNU_pubtypes)
183 .uleb128 0x17 # (DW_FORM_sec_offset)
184 .uleb128 0x2133 # (DW_AT_GNU_addr_base)
185 .uleb128 0x17 # (DW_FORM_sec_offset)
186 .uleb128 0x2132 # (DW_AT_GNU_ranges_base)
187 .uleb128 0x17 # (DW_FORM_sec_offset)
188 .uleb128 0x2131 # (DW_AT_GNU_dwo_id)
189 .uleb128 0x7 # (DW_FORM_data8)
192 .byte 0 # end of skeleton .debug_abbrev
193 .section .debug_abbrev.dwo,"",@progbits
195 .uleb128 0x1 # (abbrev code)
196 .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
197 .byte 0x1 # DW_children_yes
198 .uleb128 0x25 # (DW_AT_producer)
199 .uleb128 0x8 # (DW_FORM_string)
200 .uleb128 0x13 # (DW_AT_language)
201 .uleb128 0xb # (DW_FORM_data1)
202 .uleb128 0x3 # (DW_AT_name)
203 .uleb128 0x8 # (DW_FORM_string)
204 .uleb128 0x1b # (DW_AT_comp_dir)
205 .uleb128 0x8 # (DW_FORM_string)
206 .uleb128 0x2131 # (DW_AT_GNU_dwo_id)
207 .uleb128 0x7 # (DW_FORM_data8)
210 .uleb128 0x2 # (abbrev code)
211 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
212 .byte 0x1 # DW_children_yes
213 .uleb128 0x3f # (DW_AT_external)
214 .uleb128 0x19 # (DW_FORM_flag_present)
215 .uleb128 0x3 # (DW_AT_name)
216 .uleb128 0x8 # (DW_FORM_string)
217 .uleb128 0x3a # (DW_AT_decl_file)
218 .uleb128 0xb # (DW_FORM_data1)
219 .uleb128 0x3b # (DW_AT_decl_line)
220 .uleb128 0xb # (DW_FORM_data1)
221 .uleb128 0x27 # (DW_AT_prototyped)
222 .uleb128 0x19 # (DW_FORM_flag_present)
223 .uleb128 0x49 # (DW_AT_type)
224 .uleb128 0x13 # (DW_FORM_ref4)
225 .uleb128 0x55 # (DW_AT_ranges)
226 .uleb128 0x17 # (DW_FORM_sec_offset)
227 .uleb128 0x40 # (DW_AT_frame_base)
228 .uleb128 0x18 # (DW_FORM_exprloc)
229 .uleb128 0x1 # (DW_AT_sibling)
230 .uleb128 0x13 # (DW_FORM_ref4)
233 .uleb128 0x3 # (abbrev code)
234 .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
235 .byte 0 # DW_children_no
236 .uleb128 0x3 # (DW_AT_name)
237 .uleb128 0x8 # (DW_FORM_string)
238 .uleb128 0x3a # (DW_AT_decl_file)
239 .uleb128 0xb # (DW_FORM_data1)
240 .uleb128 0x3b # (DW_AT_decl_line)
241 .uleb128 0xb # (DW_FORM_data1)
242 .uleb128 0x49 # (DW_AT_type)
243 .uleb128 0x13 # (DW_FORM_ref4)
244 .uleb128 0x2 # (DW_AT_location)
245 .uleb128 0x18 # (DW_FORM_exprloc)
248 .uleb128 0x4 # (abbrev code)
249 .uleb128 0x24 # (TAG: DW_TAG_base_type)
250 .byte 0 # DW_children_no
251 .uleb128 0xb # (DW_AT_byte_size)
252 .uleb128 0xb # (DW_FORM_data1)
253 .uleb128 0x3e # (DW_AT_encoding)
254 .uleb128 0xb # (DW_FORM_data1)
255 .uleb128 0x3 # (DW_AT_name)
256 .uleb128 0x8 # (DW_FORM_string)
259 .uleb128 0x5 # (abbrev code)
260 .uleb128 0x2e # (TAG: DW_TAG_subprogram)
261 .byte 0 # DW_children_no
262 .uleb128 0x3f # (DW_AT_external)
263 .uleb128 0x19 # (DW_FORM_flag_present)
264 .uleb128 0x3 # (DW_AT_name)
265 .uleb128 0x8 # (DW_FORM_string)
266 .uleb128 0x3a # (DW_AT_decl_file)
267 .uleb128 0xb # (DW_FORM_data1)
268 .uleb128 0x3b # (DW_AT_decl_line)
269 .uleb128 0xb # (DW_FORM_data1)
270 .uleb128 0x49 # (DW_AT_type)
271 .uleb128 0x13 # (DW_FORM_ref4)
272 .uleb128 0x11 # (DW_AT_low_pc)
273 .uleb128 0x1f01 # (DW_FORM_GNU_addr_index)
274 .uleb128 0x12 # (DW_AT_high_pc)
275 .uleb128 0x7 # (DW_FORM_data8)
276 .uleb128 0x40 # (DW_AT_frame_base)
277 .uleb128 0x18 # (DW_FORM_exprloc)
281 .section .debug_pubnames,"",@progbits
283 .4byte 0x20 # Length of Public Names Info
284 .2byte 0x2 # DWARF Version
285 .4byte .Lskeleton_debug_info0 # Offset of Compilation Unit Info
286 .4byte 0xd2 # Compilation Unit Length
287 .4byte 0x89 # DIE offset
288 .ascii "func\0" # external name
289 .4byte 0xba # DIE offset
290 .ascii "main\0" # external name
292 .section .debug_pubtypes,"",@progbits
294 .4byte 0x16 # Length of Public Type Names Info
295 .2byte 0x2 # DWARF Version
296 .4byte .Lskeleton_debug_info0 # Offset of Compilation Unit Info
297 .4byte 0xd2 # Compilation Unit Length
298 .4byte .Ldebug_info0_int # DIE offset
299 .ascii "int\0" # external name
301 .section .debug_aranges,"",@progbits
302 .4byte 0x2c # Length of Address Ranges Info
303 .2byte 0x2 # DWARF Version
304 .4byte .Lskeleton_debug_info0 # Offset of Compilation Unit Info
305 .byte 0x8 # Size of Address
306 .byte 0 # Size of Segment Descriptor
307 .2byte 0 # Pad to 16 byte boundary
309 .8byte .Ltext0 # Address
310 .8byte .Letext0-.Ltext0 # Length
313 .section .debug_line,"",@progbits
315 .section .debug_line.dwo,"",@progbits
316 .Lskeleton_debug_line0:
317 .4byte .LELT0-.LSLT0 # Length of Source Line Info
319 .2byte 0x4 # DWARF Version
320 .4byte .LELTP0-.LASLTP0 # Prolog Length
322 .byte 0x1 # Minimum Instruction Length
323 .byte 0x1 # Maximum Operations Per Instruction
324 .byte 0x1 # Default is_stmt_start flag
325 .byte 0xf6 # Line Base Value (Special Opcodes)
326 .byte 0xf5 # Line Range Value (Special Opcodes)
327 .byte 0xa # Special Opcode Base
328 .byte 0 # opcode: 0x1 has 0 args
329 .byte 0x1 # opcode: 0x2 has 1 args
330 .byte 0x1 # opcode: 0x3 has 1 args
331 .byte 0x1 # opcode: 0x4 has 1 args
332 .byte 0x1 # opcode: 0x5 has 1 args
333 .byte 0 # opcode: 0x6 has 0 args
334 .byte 0 # opcode: 0x7 has 0 args
335 .byte 0 # opcode: 0x8 has 0 args
336 .byte 0x1 # opcode: 0x9 has 1 args
337 .byte 0 # End directory table
338 .ascii "fission-base.c\0" # File Entry: 0x1
342 .byte 0 # End file name table
345 .section .debug_addr,"",@progbits
347 # Shift the real entries down by a non-zero amount to test
348 # DW_AT_GNU_addr_base.
351 .8byte .LFB0 # DW_AT_low_pc
352 .8byte .LFB1 # DW_AT_low_pc
354 .section .debug_ranges,"",@progbits
356 # Shift the real entries down by a non-zero amount to test
357 # DW_AT_GNU_ranges_base.
359 .Ldebug_ranges0_begin:
360 # Note: Since the DW_TAG_compile_unit specifies low_pc, that sets
361 # the base address, and thus we have to subtract it here.
362 .8byte .LFB0 - .Ltext0 # Offset 0
363 .8byte .LFE0 - .Ltext0
367 .section .note.GNU-stack,"",@progbits