Imported Upstream version 7.8
[platform/upstream/gdb.git] / gdb / testsuite / gdb.dwarf2 / fission-loclists.S
1 /* This testcase is part of GDB, the GNU debugger.
2
3    Copyright 2013-2014 Free Software Foundation, Inc.
4
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.
9
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.
14
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/>.
17
18    This file was created by doing:
19    gcc -O2 -gdwarf-4 -gsplit-debug -S -dA fission-loclists.c
20    and then massaging the output.
21
22    fission-loclists.c:
23
24    volatile v;
25
26    __attribute__ ((noinline)) void foo (int* x) { v = *x; }
27
28    int
29    main (int argc, char *argv[])
30    {
31      foo (&argc);
32      return 0;
33    }
34 */
35
36         .file   "fission-loclists.c"
37         .text
38 .Ltext0:
39         .p2align 4,,15
40         .globl  foo
41         .type   foo, @function
42 foo:
43 .LFB0:
44         .file 1 "fission-loclists.c"
45         # fission-loclists.c:3
46         .loc 1 3 0
47         .cfi_startproc
48 .LVL0:
49 # BLOCK 2 freq:10000 seq:0
50 # PRED: ENTRY [100.0%]  (fallthru)
51         # fission-loclists.c:3
52         .loc 1 3 0
53         movl    (%rdi), %eax
54         movl    %eax, v(%rip)
55 # SUCC: EXIT [100.0%] 
56         ret
57         .cfi_endproc
58 .LFE0:
59         .size   foo, .-foo
60         .text # was .section .text.startup,"ax",@progbits
61         .p2align 4,,15
62         .globl  main
63         .type   main, @function
64 main:
65 .LFB1:
66         # fission-loclists.c:7
67         .loc 1 7 0
68         .cfi_startproc
69 .LVL1:
70 # BLOCK 2 freq:10000 seq:0
71 # PRED: ENTRY [100.0%]  (fallthru)
72         subq    $8, %rsp
73         .cfi_def_cfa_offset 16
74         # fission-loclists.c:7
75         .loc 1 7 0
76         movl    %edi, 4(%rsp)
77         # fission-loclists.c:8
78         .loc 1 8 0
79         leaq    4(%rsp), %rdi
80 .LVL2:
81         call    foo
82 .LVL3:
83         # fission-loclists.c:10
84         .loc 1 10 0
85         xorl    %eax, %eax
86         addq    $8, %rsp
87         .cfi_def_cfa_offset 8
88 # SUCC: EXIT [100.0%] 
89         ret
90         .cfi_endproc
91 .LFE1:
92         .size   main, .-main
93         .comm   v,4,4
94         .text
95 .Letext0:
96         .section        .debug_addr,"",@progbits
97 .Ldebug_addr0:
98         .8byte  .LVL1   # 0x0
99         .8byte  v       # 0x1
100         .8byte  .LVL3   # 0x2
101         .8byte  .LFB0   # 0x3
102         .8byte  .LFB1   # 0x4
103         .8byte  .LVL3-1 # 0x5
104         .8byte  .LVL2   # 0x6
105         .section        .debug_info.dwo,"",@progbits
106 .Ldebug_info0:
107         .4byte  .Ldebug_info0_end - .Ldebug_info0 - 4 # Length of Compilation Unit Info
108         .value  0x4     # DWARF version number
109         .4byte  .Ldebug_abbrev0 # Offset Into Abbrev. Section
110         .byte   0x8     # Pointer Size (in bytes)
111         .uleb128 0x1    # (DIE (0xb) DW_TAG_compile_unit)
112         .ascii "GNU C 4.7.x-fission\0"  # DW_AT_producer
113         .byte   0x1     # DW_AT_language
114         .ascii "fission-loclists.c\0"   # DW_AT_name
115         .ascii "/tmp\0" # DW_AT_comp_dir
116         .byte   0xcb    # DW_AT_GNU_dwo_id
117         .byte   0x64
118         .byte   0x3e
119         .byte   0x34
120         .byte   0x1b
121         .byte   0x8a
122         .byte   0xd6
123         .byte   0x5
124 .Lfoo_func:
125         .uleb128 0x2    # (DIE (0x5c) DW_TAG_subprogram)
126                         # DW_AT_external
127         .ascii "foo\0"  # DW_AT_name
128         .byte   0x1     # DW_AT_decl_file (fission-loclists.c)
129         .byte   0x3     # DW_AT_decl_line
130                         # DW_AT_prototyped
131         .uleb128 0x3    # DW_AT_low_pc
132         .8byte  .LFE0-.LFB0     # DW_AT_high_pc
133         .uleb128 0x1    # DW_AT_frame_base
134         .byte   0x9c    # DW_OP_call_frame_cfa
135                         # DW_AT_GNU_all_call_sites
136         .4byte  .Lint_ptr_type - .Ldebug_info0 # DW_AT_sibling
137         .uleb128 0x3    # (DIE (0x72) DW_TAG_formal_parameter)
138         .ascii "x\0"    # DW_AT_name
139         .byte   0x1     # DW_AT_decl_file (fission-loclists.c)
140         .byte   0x3     # DW_AT_decl_line
141         .4byte  .Lint_ptr_type - .Ldebug_info0 # DW_AT_type
142         .uleb128 0x1    # DW_AT_location
143         .byte   0x55    # DW_OP_reg5
144         .byte   0       # end of children of DIE 0x5c
145 .Lint_ptr_type:
146         .uleb128 0x4    # (DIE (0x7e) DW_TAG_pointer_type)
147         .byte   0x8     # DW_AT_byte_size
148         .4byte  .Lint_type - .Ldebug_info0 # DW_AT_type
149 .Lint_type:
150         .uleb128 0x5    # (DIE (0x84) DW_TAG_base_type)
151         .byte   0x4     # DW_AT_byte_size
152         .byte   0x5     # DW_AT_encoding
153         .ascii "int\0"  # DW_AT_name
154         .uleb128 0x6    # (DIE (0x8b) DW_TAG_subprogram)
155                         # DW_AT_external
156         .ascii "main\0" # DW_AT_name
157         .byte   0x1     # DW_AT_decl_file (fission-loclists.c)
158         .byte   0x6     # DW_AT_decl_line
159                         # DW_AT_prototyped
160         .4byte  .Lint_type - .Ldebug_info0 # DW_AT_type
161         .uleb128 0x4    # DW_AT_low_pc
162         .8byte  .LFE1-.LFB1     # DW_AT_high_pc
163         .uleb128 0x1    # DW_AT_frame_base
164         .byte   0x9c    # DW_OP_call_frame_cfa
165                         # DW_AT_GNU_all_call_sites
166         .4byte  .Lchar_ptr_ptr_type - .Ldebug_info0 # DW_AT_sibling
167         .uleb128 0x7    # (DIE (0xa6) DW_TAG_formal_parameter)
168         .ascii "argc\0" # DW_AT_name
169         .byte   0x1     # DW_AT_decl_file (fission-loclists.c)
170         .byte   0x6     # DW_AT_decl_line
171         .4byte  .Lint_type - .Ldebug_info0 # DW_AT_type
172         .4byte  .LLST0-.Ldebug_loc0     # DW_AT_location
173         .uleb128 0x7    # (DIE (0xb6) DW_TAG_formal_parameter)
174         .ascii "argv\0" # DW_AT_name
175         .byte   0x1     # DW_AT_decl_file (fission-loclists.c)
176         .byte   0x6     # DW_AT_decl_line
177         .4byte  .Lchar_ptr_ptr_type - .Ldebug_info0 # DW_AT_type
178         .4byte  .LLST1-.Ldebug_loc0     # DW_AT_location
179         .uleb128 0x8    # (DIE (0xc6) DW_TAG_GNU_call_site)
180         .uleb128 0x2    # DW_AT_low_pc
181         .4byte  .Lfoo_func - .Ldebug_info0 # DW_AT_abstract_origin
182         .uleb128 0x9    # (DIE (0xcc) DW_TAG_GNU_call_site_parameter)
183         .uleb128 0x1    # DW_AT_location
184         .byte   0x55    # DW_OP_reg5
185         .uleb128 0x2    # DW_AT_GNU_call_site_value
186         .byte   0x91    # DW_OP_fbreg
187         .sleb128 -12
188         .byte   0       # end of children of DIE 0xc6
189         .byte   0       # end of children of DIE 0x8b
190 .Lchar_ptr_ptr_type:
191         .uleb128 0x4    # (DIE (0xd4) DW_TAG_pointer_type)
192         .byte   0x8     # DW_AT_byte_size
193         .4byte  .Lchar_ptr_type - .Ldebug_info0 # DW_AT_type
194 .Lchar_ptr_type:
195         .uleb128 0x4    # (DIE (0xda) DW_TAG_pointer_type)
196         .byte   0x8     # DW_AT_byte_size
197         .4byte  .Lchar_type - .Ldebug_info0 # DW_AT_type
198 .Lchar_type:
199         .uleb128 0x5    # (DIE (0xe0) DW_TAG_base_type)
200         .byte   0x1     # DW_AT_byte_size
201         .byte   0x6     # DW_AT_encoding
202         .ascii "char\0" # DW_AT_name
203         .uleb128 0xa    # (DIE (0xe8) DW_TAG_variable)
204         .ascii "v\0"    # DW_AT_name
205         .byte   0x1     # DW_AT_decl_file (fission-loclists.c)
206         .byte   0x1     # DW_AT_decl_line
207         .4byte  .Lvolatile_int_type - .Ldebug_info0 # DW_AT_type
208                         # DW_AT_external
209         .uleb128 0x2    # DW_AT_location
210         .byte   0xfb    # DW_OP_GNU_addr_index
211         .uleb128 0x1    # (index into .debug_addr)
212 .Lvolatile_int_type:
213         .uleb128 0xb    # (DIE (0xf4) DW_TAG_volatile_type)
214         .4byte  .Lint_type - .Ldebug_info0 # DW_AT_type
215         .byte   0       # end of children of DIE 0xb
216 .Ldebug_info0_end:
217         .section        .debug_info,"",@progbits
218 .Lskeleton_debug_info0:
219         .4byte  .Lskeleton_debug_info0_end - .Lskeleton_debug_info0 - 4 # Length of Compilation Unit Info
220         .value  0x4     # DWARF version number
221         .4byte  .Lskeleton_debug_abbrev0        # Offset Into Abbrev. Section
222         .byte   0x8     # Pointer Size (in bytes)
223         .uleb128 0x1    # (DIE (0) DW_TAG_compile_unit)
224         .4byte  .Ldebug_ranges0+0       # DW_AT_ranges
225         # This next line is the core of the test.
226         # We want a non-zero value for low_pc to verify gdb is *not* using it
227         # (the initial base address) when evaluating location list addresses in
228         # .debug_loc.dwo.
229         # Note: Setting a non-zero value here means we had to adjust the
230         # values in .debug_ranges.
231         .8byte  .Ltext0 # DW_AT_low_pc
232         .4byte  .Ldebug_line0   # DW_AT_stmt_list
233         .byte   0xcb    # DW_AT_GNU_dwo_id
234         .byte   0x64
235         .byte   0x3e
236         .byte   0x34
237         .byte   0x1b
238         .byte   0x8a
239         .byte   0xd6
240         .byte   0x5
241         .4byte  .Ldebug_ranges0 # DW_AT_GNU_ranges_base
242         .ascii "/tmp/src/gdb/testsuite\0"       # DW_AT_comp_dir
243         .ascii "fission-loclists.dwo\0" # DW_AT_GNU_dwo_name
244         .4byte  .Ldebug_pubnames0       # DW_AT_GNU_pubnames
245         .4byte  .Ldebug_pubtypes0       # DW_AT_GNU_pubtypes
246         .4byte  .Ldebug_addr0   # DW_AT_GNU_addr_base
247 .Lskeleton_debug_info0_end:
248         .section        .debug_abbrev,"",@progbits
249 .Lskeleton_debug_abbrev0:
250         .uleb128 0x1    # (abbrev code)
251         .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
252         .byte   0       # DW_children_no
253         .uleb128 0x55   # (DW_AT_ranges)
254         .uleb128 0x17   # (DW_FORM_sec_offset)
255         .uleb128 0x11   # (DW_AT_low_pc)
256         .uleb128 0x1    # (DW_FORM_addr)
257         .uleb128 0x10   # (DW_AT_stmt_list)
258         .uleb128 0x17   # (DW_FORM_sec_offset)
259         .uleb128 0x2131 # (DW_AT_GNU_dwo_id)
260         .uleb128 0x7    # (DW_FORM_data8)
261         .uleb128 0x2132 # (DW_AT_GNU_ranges_base)
262         .uleb128 0x17   # (DW_FORM_sec_offset)
263         .uleb128 0x1b   # (DW_AT_comp_dir)
264         .uleb128 0x8    # (DW_FORM_string)
265         .uleb128 0x2130 # (DW_AT_GNU_dwo_name)
266         .uleb128 0x8    # (DW_FORM_string)
267         .uleb128 0x2134 # (DW_AT_GNU_pubnames)
268         .uleb128 0x17   # (DW_FORM_sec_offset)
269         .uleb128 0x2135 # (DW_AT_GNU_pubtypes)
270         .uleb128 0x17   # (DW_FORM_sec_offset)
271         .uleb128 0x2133 # (DW_AT_GNU_addr_base)
272         .uleb128 0x17   # (DW_FORM_sec_offset)
273         .byte   0
274         .byte   0
275         .uleb128 0x2    # (abbrev code)
276         .uleb128 0x41   # (TAG: DW_TAG_type_unit)
277         .byte   0       # DW_children_no
278         .uleb128 0x1b   # (DW_AT_comp_dir)
279         .uleb128 0x8    # (DW_FORM_string)
280         .uleb128 0x2130 # (DW_AT_GNU_dwo_name)
281         .uleb128 0x8    # (DW_FORM_string)
282         .uleb128 0x2134 # (DW_AT_GNU_pubnames)
283         .uleb128 0x17   # (DW_FORM_sec_offset)
284         .uleb128 0x2135 # (DW_AT_GNU_pubtypes)
285         .uleb128 0x17   # (DW_FORM_sec_offset)
286         .uleb128 0x2133 # (DW_AT_GNU_addr_base)
287         .uleb128 0x17   # (DW_FORM_sec_offset)
288         .byte   0
289         .byte   0
290         .byte   0       # end of skeleton .debug_abbrev
291         .section        .debug_abbrev.dwo,"",@progbits
292 .Ldebug_abbrev0:
293         .uleb128 0x1    # (abbrev code)
294         .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
295         .byte   0x1     # DW_children_yes
296         .uleb128 0x25   # (DW_AT_producer)
297         .uleb128 0x8    # (DW_FORM_string)
298         .uleb128 0x13   # (DW_AT_language)
299         .uleb128 0xb    # (DW_FORM_data1)
300         .uleb128 0x3    # (DW_AT_name)
301         .uleb128 0x8    # (DW_FORM_string)
302         .uleb128 0x1b   # (DW_AT_comp_dir)
303         .uleb128 0x8    # (DW_FORM_string)
304         .uleb128 0x2131 # (DW_AT_GNU_dwo_id)
305         .uleb128 0x7    # (DW_FORM_data8)
306         .byte   0
307         .byte   0
308         .uleb128 0x2    # (abbrev code)
309         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
310         .byte   0x1     # DW_children_yes
311         .uleb128 0x3f   # (DW_AT_external)
312         .uleb128 0x19   # (DW_FORM_flag_present)
313         .uleb128 0x3    # (DW_AT_name)
314         .uleb128 0x8    # (DW_FORM_string)
315         .uleb128 0x3a   # (DW_AT_decl_file)
316         .uleb128 0xb    # (DW_FORM_data1)
317         .uleb128 0x3b   # (DW_AT_decl_line)
318         .uleb128 0xb    # (DW_FORM_data1)
319         .uleb128 0x27   # (DW_AT_prototyped)
320         .uleb128 0x19   # (DW_FORM_flag_present)
321         .uleb128 0x11   # (DW_AT_low_pc)
322         .uleb128 0x1f01 # (DW_FORM_GNU_addr_index)
323         .uleb128 0x12   # (DW_AT_high_pc)
324         .uleb128 0x7    # (DW_FORM_data8)
325         .uleb128 0x40   # (DW_AT_frame_base)
326         .uleb128 0x18   # (DW_FORM_exprloc)
327         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
328         .uleb128 0x19   # (DW_FORM_flag_present)
329         .uleb128 0x1    # (DW_AT_sibling)
330         .uleb128 0x13   # (DW_FORM_ref4)
331         .byte   0
332         .byte   0
333         .uleb128 0x3    # (abbrev code)
334         .uleb128 0x5    # (TAG: DW_TAG_formal_parameter)
335         .byte   0       # DW_children_no
336         .uleb128 0x3    # (DW_AT_name)
337         .uleb128 0x8    # (DW_FORM_string)
338         .uleb128 0x3a   # (DW_AT_decl_file)
339         .uleb128 0xb    # (DW_FORM_data1)
340         .uleb128 0x3b   # (DW_AT_decl_line)
341         .uleb128 0xb    # (DW_FORM_data1)
342         .uleb128 0x49   # (DW_AT_type)
343         .uleb128 0x13   # (DW_FORM_ref4)
344         .uleb128 0x2    # (DW_AT_location)
345         .uleb128 0x18   # (DW_FORM_exprloc)
346         .byte   0
347         .byte   0
348         .uleb128 0x4    # (abbrev code)
349         .uleb128 0xf    # (TAG: DW_TAG_pointer_type)
350         .byte   0       # DW_children_no
351         .uleb128 0xb    # (DW_AT_byte_size)
352         .uleb128 0xb    # (DW_FORM_data1)
353         .uleb128 0x49   # (DW_AT_type)
354         .uleb128 0x13   # (DW_FORM_ref4)
355         .byte   0
356         .byte   0
357         .uleb128 0x5    # (abbrev code)
358         .uleb128 0x24   # (TAG: DW_TAG_base_type)
359         .byte   0       # DW_children_no
360         .uleb128 0xb    # (DW_AT_byte_size)
361         .uleb128 0xb    # (DW_FORM_data1)
362         .uleb128 0x3e   # (DW_AT_encoding)
363         .uleb128 0xb    # (DW_FORM_data1)
364         .uleb128 0x3    # (DW_AT_name)
365         .uleb128 0x8    # (DW_FORM_string)
366         .byte   0
367         .byte   0
368         .uleb128 0x6    # (abbrev code)
369         .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
370         .byte   0x1     # DW_children_yes
371         .uleb128 0x3f   # (DW_AT_external)
372         .uleb128 0x19   # (DW_FORM_flag_present)
373         .uleb128 0x3    # (DW_AT_name)
374         .uleb128 0x8    # (DW_FORM_string)
375         .uleb128 0x3a   # (DW_AT_decl_file)
376         .uleb128 0xb    # (DW_FORM_data1)
377         .uleb128 0x3b   # (DW_AT_decl_line)
378         .uleb128 0xb    # (DW_FORM_data1)
379         .uleb128 0x27   # (DW_AT_prototyped)
380         .uleb128 0x19   # (DW_FORM_flag_present)
381         .uleb128 0x49   # (DW_AT_type)
382         .uleb128 0x13   # (DW_FORM_ref4)
383         .uleb128 0x11   # (DW_AT_low_pc)
384         .uleb128 0x1f01 # (DW_FORM_GNU_addr_index)
385         .uleb128 0x12   # (DW_AT_high_pc)
386         .uleb128 0x7    # (DW_FORM_data8)
387         .uleb128 0x40   # (DW_AT_frame_base)
388         .uleb128 0x18   # (DW_FORM_exprloc)
389         .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
390         .uleb128 0x19   # (DW_FORM_flag_present)
391         .uleb128 0x1    # (DW_AT_sibling)
392         .uleb128 0x13   # (DW_FORM_ref4)
393         .byte   0
394         .byte   0
395         .uleb128 0x7    # (abbrev code)
396         .uleb128 0x5    # (TAG: DW_TAG_formal_parameter)
397         .byte   0       # DW_children_no
398         .uleb128 0x3    # (DW_AT_name)
399         .uleb128 0x8    # (DW_FORM_string)
400         .uleb128 0x3a   # (DW_AT_decl_file)
401         .uleb128 0xb    # (DW_FORM_data1)
402         .uleb128 0x3b   # (DW_AT_decl_line)
403         .uleb128 0xb    # (DW_FORM_data1)
404         .uleb128 0x49   # (DW_AT_type)
405         .uleb128 0x13   # (DW_FORM_ref4)
406         .uleb128 0x2    # (DW_AT_location)
407         .uleb128 0x17   # (DW_FORM_sec_offset)
408         .byte   0
409         .byte   0
410         .uleb128 0x8    # (abbrev code)
411         .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
412         .byte   0x1     # DW_children_yes
413         .uleb128 0x11   # (DW_AT_low_pc)
414         .uleb128 0x1f01 # (DW_FORM_GNU_addr_index)
415         .uleb128 0x31   # (DW_AT_abstract_origin)
416         .uleb128 0x13   # (DW_FORM_ref4)
417         .byte   0
418         .byte   0
419         .uleb128 0x9    # (abbrev code)
420         .uleb128 0x410a # (TAG: DW_TAG_GNU_call_site_parameter)
421         .byte   0       # DW_children_no
422         .uleb128 0x2    # (DW_AT_location)
423         .uleb128 0x18   # (DW_FORM_exprloc)
424         .uleb128 0x2111 # (DW_AT_GNU_call_site_value)
425         .uleb128 0x18   # (DW_FORM_exprloc)
426         .byte   0
427         .byte   0
428         .uleb128 0xa    # (abbrev code)
429         .uleb128 0x34   # (TAG: DW_TAG_variable)
430         .byte   0       # DW_children_no
431         .uleb128 0x3    # (DW_AT_name)
432         .uleb128 0x8    # (DW_FORM_string)
433         .uleb128 0x3a   # (DW_AT_decl_file)
434         .uleb128 0xb    # (DW_FORM_data1)
435         .uleb128 0x3b   # (DW_AT_decl_line)
436         .uleb128 0xb    # (DW_FORM_data1)
437         .uleb128 0x49   # (DW_AT_type)
438         .uleb128 0x13   # (DW_FORM_ref4)
439         .uleb128 0x3f   # (DW_AT_external)
440         .uleb128 0x19   # (DW_FORM_flag_present)
441         .uleb128 0x2    # (DW_AT_location)
442         .uleb128 0x18   # (DW_FORM_exprloc)
443         .byte   0
444         .byte   0
445         .uleb128 0xb    # (abbrev code)
446         .uleb128 0x35   # (TAG: DW_TAG_volatile_type)
447         .byte   0       # DW_children_no
448         .uleb128 0x49   # (DW_AT_type)
449         .uleb128 0x13   # (DW_FORM_ref4)
450         .byte   0
451         .byte   0
452         .byte   0
453         .section        .debug_loc.dwo,"",@progbits
454 .Ldebug_loc0:
455 .LLST0:
456         .byte   0x3     # Location list start/length entry (*.LLST0)
457         .uleb128 0      # Location list range start index (*.LVL1)
458         .4byte  .LVL2-.LVL1     # Location list range length (*.LLST0)
459         .value  0x1     # Location expression size
460         .byte   0x55    # DW_OP_reg5
461         .byte   0x3     # Location list start/length entry (*.LLST0)
462         .uleb128 0x6    # Location list range start index (*.LVL2)
463         .4byte  .LFE1-.LVL2     # Location list range length (*.LLST0)
464         .value  0x2     # Location expression size
465         .byte   0x91    # DW_OP_fbreg
466         .sleb128 -12
467         .byte   0       # Location list terminator (*.LLST0)
468 .LLST1:
469         .byte   0x3     # Location list start/length entry (*.LLST1)
470         .uleb128 0      # Location list range start index (*.LVL1)
471         .4byte  .LVL3-1-.LVL1   # Location list range length (*.LLST1)
472         .value  0x1     # Location expression size
473         .byte   0x54    # DW_OP_reg4
474         .byte   0x3     # Location list start/length entry (*.LLST1)
475         .uleb128 0x5    # Location list range start index (*.LVL3-1)
476         .4byte  .LFE1-.LVL3-1   # Location list range length (*.LLST1)
477         .value  0x4     # Location expression size
478         .byte   0xf3    # DW_OP_GNU_entry_value
479         .uleb128 0x1
480         .byte   0x54    # DW_OP_reg4
481         .byte   0x9f    # DW_OP_stack_value
482         .byte   0       # Location list terminator (*.LLST1)
483         .section        .debug_gnu_pubnames,"",@progbits
484 .Ldebug_pubnames0:
485         .long   0x28    # Pub Info Length
486         .value  0x2     # DWARF Version
487         .long   .Lskeleton_debug_info0  # Offset of Compilation Unit Info
488         .long   0xa6    # Compilation Unit Length
489         .long   0x18    # DIE offset
490         .byte   0x30    # GDB-index flags
491         .ascii "foo\0"  # external name
492         .long   0x47    # DIE offset
493         .byte   0x30    # GDB-index flags
494         .ascii "main\0" # external name
495         .long   0x94    # DIE offset
496         .byte   0x20    # GDB-index flags
497         .ascii "v\0"    # external name
498         .long   0
499         .section        .debug_gnu_pubtypes,"",@progbits
500 .Ldebug_pubtypes0:
501         .long   0x21    # Pub Info Length
502         .value  0x2     # DWARF Version
503         .long   .Lskeleton_debug_info0  # Offset of Compilation Unit Info
504         .long   0xa6    # Compilation Unit Length
505         .long   0x40    # DIE offset
506         .byte   0x90    # GDB-index flags
507         .ascii "int\0"  # external name
508         .long   0x90    # DIE offset
509         .byte   0x90    # GDB-index flags
510         .ascii "char\0" # external name
511         .long   0
512         .section        .debug_aranges,"",@progbits
513         .long   0x3c    # Length of Address Ranges Info
514         .value  0x2     # DWARF Version
515         .long   .Lskeleton_debug_info0  # Offset of Compilation Unit Info
516         .byte   0x8     # Size of Address
517         .byte   0       # Size of Segment Descriptor
518         .value  0       # Pad to 16 byte boundary
519         .value  0
520         .quad   .Ltext0 # Address
521         .quad   .Letext0-.Ltext0        # Length
522         .quad   .LFB1   # Address
523         .quad   .LFE1-.LFB1     # Length
524         .quad   0
525         .quad   0
526         .section        .debug_aranges,"",@progbits
527         .4byte  0x3c    # Length of Address Ranges Info
528         .value  0x2     # DWARF Version
529         .4byte  .Lskeleton_debug_info0  # Offset of Compilation Unit Info
530         .byte   0x8     # Size of Address
531         .byte   0       # Size of Segment Descriptor
532         .value  0       # Pad to 16 byte boundary
533         .value  0
534         .8byte  .Ltext0 # Address
535         .8byte  .Letext0-.Ltext0        # Length
536         .8byte  .LFB1   # Address
537         .8byte  .LFE1-.LFB1     # Length
538         .8byte  0
539         .8byte  0
540         .section        .debug_ranges,"",@progbits
541 .Ldebug_ranges0:
542         .8byte  .Ltext0 - .Ltext0       # Offset 0
543         .8byte  .Letext0 - .Ltext0
544         .8byte  .LFB1 - .Ltext0 # Offset 0x10
545         .8byte  .LFE1 - .Ltext0
546         .8byte  0
547         .8byte  0
548         .section        .debug_line,"",@progbits
549 .Ldebug_line0:
550         .section        .debug_line.dwo,"",@progbits
551 .Lskeleton_debug_line0:
552         .4byte  .LELT0-.LSLT0   # Length of Source Line Info
553 .LSLT0:
554         .value  0x4     # DWARF Version
555         .4byte  .LELTP0-.LASLTP0        # Prolog Length
556 .LASLTP0:
557         .byte   0x1     # Minimum Instruction Length
558         .byte   0x1     # Maximum Operations Per Instruction
559         .byte   0x1     # Default is_stmt_start flag
560         .byte   0xf6    # Line Base Value (Special Opcodes)
561         .byte   0xf2    # Line Range Value (Special Opcodes)
562         .byte   0xd     # Special Opcode Base
563         .byte   0       # opcode: 0x1 has 0 args
564         .byte   0x1     # opcode: 0x2 has 1 args
565         .byte   0x1     # opcode: 0x3 has 1 args
566         .byte   0x1     # opcode: 0x4 has 1 args
567         .byte   0x1     # opcode: 0x5 has 1 args
568         .byte   0       # opcode: 0x6 has 0 args
569         .byte   0       # opcode: 0x7 has 0 args
570         .byte   0       # opcode: 0x8 has 0 args
571         .byte   0x1     # opcode: 0x9 has 1 args
572         .byte   0       # opcode: 0xa has 0 args
573         .byte   0       # opcode: 0xb has 0 args
574         .byte   0x1     # opcode: 0xc has 1 args
575         .byte   0       # End directory table
576         .ascii "fission-loclists.c\0"   # File Entry: 0x1
577         .uleb128 0
578         .uleb128 0
579         .uleb128 0
580         .byte   0       # End file name table
581 .LELTP0:
582 .LELT0:
583         .section        .debug_str_offsets.dwo,"",@progbits
584         .section        .debug_str.dwo,"",@progbits
585         .ident  "GCC: 4.7.x-fission"
586         .section        .note.GNU-stack,"",@progbits