xref: /aosp_15_r20/external/elfutils/tests/run-readelf-loc.sh (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker#! /bin/sh
2*7304104dSAndroid Build Coastguard Worker# Copyright (C) 2013 Red Hat, Inc.
3*7304104dSAndroid Build Coastguard Worker# This file is part of elfutils.
4*7304104dSAndroid Build Coastguard Worker#
5*7304104dSAndroid Build Coastguard Worker# This file is free software; you can redistribute it and/or modify
6*7304104dSAndroid Build Coastguard Worker# it under the terms of the GNU General Public License as published by
7*7304104dSAndroid Build Coastguard Worker# the Free Software Foundation; either version 3 of the License, or
8*7304104dSAndroid Build Coastguard Worker# (at your option) any later version.
9*7304104dSAndroid Build Coastguard Worker#
10*7304104dSAndroid Build Coastguard Worker# elfutils is distributed in the hope that it will be useful, but
11*7304104dSAndroid Build Coastguard Worker# WITHOUT ANY WARRANTY; without even the implied warranty of
12*7304104dSAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*7304104dSAndroid Build Coastguard Worker# GNU General Public License for more details.
14*7304104dSAndroid Build Coastguard Worker#
15*7304104dSAndroid Build Coastguard Worker# You should have received a copy of the GNU General Public License
16*7304104dSAndroid Build Coastguard Worker# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17*7304104dSAndroid Build Coastguard Worker
18*7304104dSAndroid Build Coastguard Worker. $srcdir/test-subr.sh
19*7304104dSAndroid Build Coastguard Worker
20*7304104dSAndroid Build Coastguard Worker# - hello.c
21*7304104dSAndroid Build Coastguard Worker# int say (const char *prefix);
22*7304104dSAndroid Build Coastguard Worker#
23*7304104dSAndroid Build Coastguard Worker# static char *
24*7304104dSAndroid Build Coastguard Worker# subject (char *word, int count)
25*7304104dSAndroid Build Coastguard Worker# {
26*7304104dSAndroid Build Coastguard Worker#   return count > 0 ? word : (word + count);
27*7304104dSAndroid Build Coastguard Worker# }
28*7304104dSAndroid Build Coastguard Worker#
29*7304104dSAndroid Build Coastguard Worker# int
30*7304104dSAndroid Build Coastguard Worker# main (int argc, char **argv)
31*7304104dSAndroid Build Coastguard Worker# {
32*7304104dSAndroid Build Coastguard Worker#    return say (subject (argv[0], argc));
33*7304104dSAndroid Build Coastguard Worker# }
34*7304104dSAndroid Build Coastguard Worker#
35*7304104dSAndroid Build Coastguard Worker# - world.c
36*7304104dSAndroid Build Coastguard Worker# static int
37*7304104dSAndroid Build Coastguard Worker# sad (char c)
38*7304104dSAndroid Build Coastguard Worker# {
39*7304104dSAndroid Build Coastguard Worker#   return c > 0 ? c : c + 1;
40*7304104dSAndroid Build Coastguard Worker# }
41*7304104dSAndroid Build Coastguard Worker#
42*7304104dSAndroid Build Coastguard Worker# static int
43*7304104dSAndroid Build Coastguard Worker# happy (const char *w)
44*7304104dSAndroid Build Coastguard Worker# {
45*7304104dSAndroid Build Coastguard Worker#   return sad (w[1]);
46*7304104dSAndroid Build Coastguard Worker# }
47*7304104dSAndroid Build Coastguard Worker#
48*7304104dSAndroid Build Coastguard Worker# int
49*7304104dSAndroid Build Coastguard Worker# say (const char *prefix)
50*7304104dSAndroid Build Coastguard Worker# {
51*7304104dSAndroid Build Coastguard Worker#   const char *world = "World";
52*7304104dSAndroid Build Coastguard Worker#   return prefix ? sad (prefix[0]) : happy (world);
53*7304104dSAndroid Build Coastguard Worker# }
54*7304104dSAndroid Build Coastguard Worker#
55*7304104dSAndroid Build Coastguard Worker# gcc -g -O2 -c hello.c
56*7304104dSAndroid Build Coastguard Worker# gcc -g -O2 -c world.c
57*7304104dSAndroid Build Coastguard Worker# gcc -g -o testfileloc hello.o world.o
58*7304104dSAndroid Build Coastguard Worker
59*7304104dSAndroid Build Coastguard Workertestfiles testfileloc
60*7304104dSAndroid Build Coastguard Worker
61*7304104dSAndroid Build Coastguard Worker# Process values as offsets from base addresses and resolve to symbols.
62*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=loc --debug-dump=ranges \
63*7304104dSAndroid Build Coastguard Worker  testfileloc<<\EOF
64*7304104dSAndroid Build Coastguard Worker
65*7304104dSAndroid Build Coastguard WorkerDWARF section [33] '.debug_loc' at offset 0xd2a:
66*7304104dSAndroid Build Coastguard Worker
67*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400480 <main>
68*7304104dSAndroid Build Coastguard Worker [     0] range 0, d
69*7304104dSAndroid Build Coastguard Worker          0x0000000000400480 <main>..
70*7304104dSAndroid Build Coastguard Worker          0x000000000040048c <main+0xc>
71*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
72*7304104dSAndroid Build Coastguard Worker [    23] range 5, d
73*7304104dSAndroid Build Coastguard Worker          0x0000000000400485 <main+0x5>..
74*7304104dSAndroid Build Coastguard Worker          0x000000000040048c <main+0xc>
75*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
76*7304104dSAndroid Build Coastguard Worker
77*7304104dSAndroid Build Coastguard Worker CU [    e0] base: 0x00000000004004a0 <say>
78*7304104dSAndroid Build Coastguard Worker [    46] range 12, 1a
79*7304104dSAndroid Build Coastguard Worker          0x00000000004004b2 <say+0x12>..
80*7304104dSAndroid Build Coastguard Worker          0x00000000004004b9 <say+0x19>
81*7304104dSAndroid Build Coastguard Worker           [ 0] breg5 0
82*7304104dSAndroid Build Coastguard Worker
83*7304104dSAndroid Build Coastguard WorkerDWARF section [34] '.debug_ranges' at offset 0xd94:
84*7304104dSAndroid Build Coastguard Worker
85*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400480 <main>
86*7304104dSAndroid Build Coastguard Worker [     0] range 0, 2
87*7304104dSAndroid Build Coastguard Worker          0x0000000000400480 <main>..
88*7304104dSAndroid Build Coastguard Worker          0x0000000000400481 <main+0x1>
89*7304104dSAndroid Build Coastguard Worker          range 5, d
90*7304104dSAndroid Build Coastguard Worker          0x0000000000400485 <main+0x5>..
91*7304104dSAndroid Build Coastguard Worker          0x000000000040048c <main+0xc>
92*7304104dSAndroid Build Coastguard Worker
93*7304104dSAndroid Build Coastguard Worker CU [    e0] base: 0x00000000004004a0 <say>
94*7304104dSAndroid Build Coastguard Worker [    30] range d, f
95*7304104dSAndroid Build Coastguard Worker          0x00000000004004ad <say+0xd>..
96*7304104dSAndroid Build Coastguard Worker          0x00000000004004ae <say+0xe>
97*7304104dSAndroid Build Coastguard Worker          range 12, 1a
98*7304104dSAndroid Build Coastguard Worker          0x00000000004004b2 <say+0x12>..
99*7304104dSAndroid Build Coastguard Worker          0x00000000004004b9 <say+0x19>
100*7304104dSAndroid Build Coastguard WorkerEOF
101*7304104dSAndroid Build Coastguard Worker
102*7304104dSAndroid Build Coastguard Worker# Don't resolve addresses to symbols.
103*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -N --debug-dump=loc --debug-dump=ranges \
104*7304104dSAndroid Build Coastguard Worker  testfileloc<<\EOF
105*7304104dSAndroid Build Coastguard Worker
106*7304104dSAndroid Build Coastguard WorkerDWARF section [33] '.debug_loc' at offset 0xd2a:
107*7304104dSAndroid Build Coastguard Worker
108*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400480
109*7304104dSAndroid Build Coastguard Worker [     0] range 0, d
110*7304104dSAndroid Build Coastguard Worker          0x0000000000400480..
111*7304104dSAndroid Build Coastguard Worker          0x000000000040048c
112*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
113*7304104dSAndroid Build Coastguard Worker [    23] range 5, d
114*7304104dSAndroid Build Coastguard Worker          0x0000000000400485..
115*7304104dSAndroid Build Coastguard Worker          0x000000000040048c
116*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
117*7304104dSAndroid Build Coastguard Worker
118*7304104dSAndroid Build Coastguard Worker CU [    e0] base: 0x00000000004004a0
119*7304104dSAndroid Build Coastguard Worker [    46] range 12, 1a
120*7304104dSAndroid Build Coastguard Worker          0x00000000004004b2..
121*7304104dSAndroid Build Coastguard Worker          0x00000000004004b9
122*7304104dSAndroid Build Coastguard Worker           [ 0] breg5 0
123*7304104dSAndroid Build Coastguard Worker
124*7304104dSAndroid Build Coastguard WorkerDWARF section [34] '.debug_ranges' at offset 0xd94:
125*7304104dSAndroid Build Coastguard Worker
126*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400480
127*7304104dSAndroid Build Coastguard Worker [     0] range 0, 2
128*7304104dSAndroid Build Coastguard Worker          0x0000000000400480..
129*7304104dSAndroid Build Coastguard Worker          0x0000000000400481
130*7304104dSAndroid Build Coastguard Worker          range 5, d
131*7304104dSAndroid Build Coastguard Worker          0x0000000000400485..
132*7304104dSAndroid Build Coastguard Worker          0x000000000040048c
133*7304104dSAndroid Build Coastguard Worker
134*7304104dSAndroid Build Coastguard Worker CU [    e0] base: 0x00000000004004a0
135*7304104dSAndroid Build Coastguard Worker [    30] range d, f
136*7304104dSAndroid Build Coastguard Worker          0x00000000004004ad..
137*7304104dSAndroid Build Coastguard Worker          0x00000000004004ae
138*7304104dSAndroid Build Coastguard Worker          range 12, 1a
139*7304104dSAndroid Build Coastguard Worker          0x00000000004004b2..
140*7304104dSAndroid Build Coastguard Worker          0x00000000004004b9
141*7304104dSAndroid Build Coastguard WorkerEOF
142*7304104dSAndroid Build Coastguard Worker
143*7304104dSAndroid Build Coastguard Worker# Produce "raw" unprocessed content.
144*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf -U --debug-dump=loc --debug-dump=ranges \
145*7304104dSAndroid Build Coastguard Worker  testfileloc<<\EOF
146*7304104dSAndroid Build Coastguard Worker
147*7304104dSAndroid Build Coastguard WorkerDWARF section [33] '.debug_loc' at offset 0xd2a:
148*7304104dSAndroid Build Coastguard Worker
149*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400480
150*7304104dSAndroid Build Coastguard Worker [     0] range 0, d
151*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
152*7304104dSAndroid Build Coastguard Worker [    23] range 5, d
153*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
154*7304104dSAndroid Build Coastguard Worker
155*7304104dSAndroid Build Coastguard Worker CU [    e0] base: 0x00000000004004a0
156*7304104dSAndroid Build Coastguard Worker [    46] range 12, 1a
157*7304104dSAndroid Build Coastguard Worker           [ 0] breg5 0
158*7304104dSAndroid Build Coastguard Worker
159*7304104dSAndroid Build Coastguard WorkerDWARF section [34] '.debug_ranges' at offset 0xd94:
160*7304104dSAndroid Build Coastguard Worker
161*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400480
162*7304104dSAndroid Build Coastguard Worker [     0] range 0, 2
163*7304104dSAndroid Build Coastguard Worker          range 5, d
164*7304104dSAndroid Build Coastguard Worker
165*7304104dSAndroid Build Coastguard Worker CU [    e0] base: 0x00000000004004a0
166*7304104dSAndroid Build Coastguard Worker [    30] range d, f
167*7304104dSAndroid Build Coastguard Worker          range 12, 1a
168*7304104dSAndroid Build Coastguard WorkerEOF
169*7304104dSAndroid Build Coastguard Worker
170*7304104dSAndroid Build Coastguard Worker# .debug_rnglists (DWARF5), see tests/testfile-dwarf-45.source
171*7304104dSAndroid Build Coastguard Workertestfiles testfile-dwarf-5
172*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=loc testfile-dwarf-5<<\EOF
173*7304104dSAndroid Build Coastguard Worker
174*7304104dSAndroid Build Coastguard WorkerDWARF section [31] '.debug_loclists' at offset 0x1c0c:
175*7304104dSAndroid Build Coastguard WorkerTable at Offset 0x0:
176*7304104dSAndroid Build Coastguard Worker
177*7304104dSAndroid Build Coastguard Worker Length:               96
178*7304104dSAndroid Build Coastguard Worker DWARF version:         5
179*7304104dSAndroid Build Coastguard Worker Address size:          8
180*7304104dSAndroid Build Coastguard Worker Segment size:          0
181*7304104dSAndroid Build Coastguard Worker Offset entries:        0
182*7304104dSAndroid Build Coastguard Worker CU [     c] base: 0x0000000000400510 <foo>
183*7304104dSAndroid Build Coastguard Worker
184*7304104dSAndroid Build Coastguard Worker  Offset: c, Index: 0
185*7304104dSAndroid Build Coastguard Worker    offset_pair 0, a
186*7304104dSAndroid Build Coastguard Worker      0x0000000000400510 <foo>..
187*7304104dSAndroid Build Coastguard Worker      0x0000000000400519 <foo+0x9>
188*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
189*7304104dSAndroid Build Coastguard Worker    offset_pair a, 34
190*7304104dSAndroid Build Coastguard Worker      0x000000000040051a <foo+0xa>..
191*7304104dSAndroid Build Coastguard Worker      0x0000000000400543 <foo+0x33>
192*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
193*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
194*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
195*7304104dSAndroid Build Coastguard Worker    end_of_list
196*7304104dSAndroid Build Coastguard Worker
197*7304104dSAndroid Build Coastguard Worker  Offset: 1a, Index: e
198*7304104dSAndroid Build Coastguard Worker    offset_pair 1b, 2d
199*7304104dSAndroid Build Coastguard Worker      0x000000000040052b <foo+0x1b>..
200*7304104dSAndroid Build Coastguard Worker      0x000000000040053c <foo+0x2c>
201*7304104dSAndroid Build Coastguard Worker        [ 0] addr 0x601038 <m>
202*7304104dSAndroid Build Coastguard Worker    end_of_list
203*7304104dSAndroid Build Coastguard Worker
204*7304104dSAndroid Build Coastguard Worker  Offset: 28, Index: 1c
205*7304104dSAndroid Build Coastguard Worker    offset_pair 1b, 21
206*7304104dSAndroid Build Coastguard Worker      0x000000000040052b <foo+0x1b>..
207*7304104dSAndroid Build Coastguard Worker      0x0000000000400530 <foo+0x20>
208*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
209*7304104dSAndroid Build Coastguard Worker    end_of_list
210*7304104dSAndroid Build Coastguard Worker
211*7304104dSAndroid Build Coastguard Worker  Offset: 2e, Index: 22
212*7304104dSAndroid Build Coastguard Worker    offset_pair 1b, 27
213*7304104dSAndroid Build Coastguard Worker      0x000000000040052b <foo+0x1b>..
214*7304104dSAndroid Build Coastguard Worker      0x0000000000400536 <foo+0x26>
215*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
216*7304104dSAndroid Build Coastguard Worker    offset_pair 29, 2d
217*7304104dSAndroid Build Coastguard Worker      0x0000000000400539 <foo+0x29>..
218*7304104dSAndroid Build Coastguard Worker      0x000000000040053c <foo+0x2c>
219*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
220*7304104dSAndroid Build Coastguard Worker    end_of_list
221*7304104dSAndroid Build Coastguard Worker
222*7304104dSAndroid Build Coastguard Worker  Offset: 39, Index: 2d
223*7304104dSAndroid Build Coastguard Worker    offset_pair 21, 27
224*7304104dSAndroid Build Coastguard Worker      0x0000000000400531 <foo+0x21>..
225*7304104dSAndroid Build Coastguard Worker      0x0000000000400536 <foo+0x26>
226*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
227*7304104dSAndroid Build Coastguard Worker    offset_pair 29, 2d
228*7304104dSAndroid Build Coastguard Worker      0x0000000000400539 <foo+0x29>..
229*7304104dSAndroid Build Coastguard Worker      0x000000000040053c <foo+0x2c>
230*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
231*7304104dSAndroid Build Coastguard Worker    end_of_list
232*7304104dSAndroid Build Coastguard Worker
233*7304104dSAndroid Build Coastguard Worker  Offset: 44, Index: 38
234*7304104dSAndroid Build Coastguard Worker    offset_pair 21, 2d
235*7304104dSAndroid Build Coastguard Worker      0x0000000000400531 <foo+0x21>..
236*7304104dSAndroid Build Coastguard Worker      0x000000000040053c <foo+0x2c>
237*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
238*7304104dSAndroid Build Coastguard Worker    end_of_list
239*7304104dSAndroid Build Coastguard Worker
240*7304104dSAndroid Build Coastguard Worker  Offset: 4a, Index: 3e
241*7304104dSAndroid Build Coastguard Worker    offset_pair 2d, 33
242*7304104dSAndroid Build Coastguard Worker      0x000000000040053d <foo+0x2d>..
243*7304104dSAndroid Build Coastguard Worker      0x0000000000400542 <foo+0x32>
244*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
245*7304104dSAndroid Build Coastguard Worker    end_of_list
246*7304104dSAndroid Build Coastguard Worker
247*7304104dSAndroid Build Coastguard Worker  Offset: 50, Index: 44
248*7304104dSAndroid Build Coastguard Worker    offset_pair 40, 4f
249*7304104dSAndroid Build Coastguard Worker      0x0000000000400550 <baz>..
250*7304104dSAndroid Build Coastguard Worker      0x000000000040055e <baz+0xe>
251*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
252*7304104dSAndroid Build Coastguard Worker    offset_pair 4f, 51
253*7304104dSAndroid Build Coastguard Worker      0x000000000040055f <baz+0xf>..
254*7304104dSAndroid Build Coastguard Worker      0x0000000000400560 <baz+0x10>
255*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
256*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
257*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
258*7304104dSAndroid Build Coastguard Worker    end_of_list
259*7304104dSAndroid Build Coastguard Worker
260*7304104dSAndroid Build Coastguard Worker  Offset: 5e, Index: 52
261*7304104dSAndroid Build Coastguard Worker    offset_pair 40, 50
262*7304104dSAndroid Build Coastguard Worker      0x0000000000400550 <baz>..
263*7304104dSAndroid Build Coastguard Worker      0x000000000040055f <baz+0xf>
264*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
265*7304104dSAndroid Build Coastguard Worker    end_of_list
266*7304104dSAndroid Build Coastguard Worker
267*7304104dSAndroid Build Coastguard WorkerTable at Offset 0x64:
268*7304104dSAndroid Build Coastguard Worker
269*7304104dSAndroid Build Coastguard Worker Length:              159
270*7304104dSAndroid Build Coastguard Worker DWARF version:         5
271*7304104dSAndroid Build Coastguard Worker Address size:          8
272*7304104dSAndroid Build Coastguard Worker Segment size:          0
273*7304104dSAndroid Build Coastguard Worker Offset entries:        0
274*7304104dSAndroid Build Coastguard Worker CU [   218] base: 000000000000000000
275*7304104dSAndroid Build Coastguard Worker
276*7304104dSAndroid Build Coastguard Worker  Offset: 70, Index: 0
277*7304104dSAndroid Build Coastguard Worker    base_address 0x400410
278*7304104dSAndroid Build Coastguard Worker      0x0000000000400410 <main>
279*7304104dSAndroid Build Coastguard Worker    offset_pair 0, 14
280*7304104dSAndroid Build Coastguard Worker      0x0000000000400410 <main>..
281*7304104dSAndroid Build Coastguard Worker      0x0000000000400423 <main+0x13>
282*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
283*7304104dSAndroid Build Coastguard Worker    offset_pair 14, 20
284*7304104dSAndroid Build Coastguard Worker      0x0000000000400424 <main+0x14>..
285*7304104dSAndroid Build Coastguard Worker      0x000000000040042f <main+0x1f>
286*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
287*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
288*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
289*7304104dSAndroid Build Coastguard Worker    end_of_list
290*7304104dSAndroid Build Coastguard Worker
291*7304104dSAndroid Build Coastguard Worker  Offset: 87, Index: 17
292*7304104dSAndroid Build Coastguard Worker    base_address 0x400410
293*7304104dSAndroid Build Coastguard Worker      0x0000000000400410 <main>
294*7304104dSAndroid Build Coastguard Worker    offset_pair 0, 18
295*7304104dSAndroid Build Coastguard Worker      0x0000000000400410 <main>..
296*7304104dSAndroid Build Coastguard Worker      0x0000000000400427 <main+0x17>
297*7304104dSAndroid Build Coastguard Worker        [ 0] reg4
298*7304104dSAndroid Build Coastguard Worker    offset_pair 18, 20
299*7304104dSAndroid Build Coastguard Worker      0x0000000000400428 <main+0x18>..
300*7304104dSAndroid Build Coastguard Worker      0x000000000040042f <main+0x1f>
301*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
302*7304104dSAndroid Build Coastguard Worker             [ 0] reg4
303*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
304*7304104dSAndroid Build Coastguard Worker    end_of_list
305*7304104dSAndroid Build Coastguard Worker
306*7304104dSAndroid Build Coastguard Worker  Offset: 9e, Index: 2e
307*7304104dSAndroid Build Coastguard Worker    start_length 0x400421, 7
308*7304104dSAndroid Build Coastguard Worker      0x0000000000400421 <main+0x11>..
309*7304104dSAndroid Build Coastguard Worker      0x0000000000400427 <main+0x17>
310*7304104dSAndroid Build Coastguard Worker        [ 0] reg0
311*7304104dSAndroid Build Coastguard Worker    end_of_list
312*7304104dSAndroid Build Coastguard Worker
313*7304104dSAndroid Build Coastguard Worker  Offset: ab, Index: 3b
314*7304104dSAndroid Build Coastguard Worker    base_address 0x400570
315*7304104dSAndroid Build Coastguard Worker      0x0000000000400570 <calc>
316*7304104dSAndroid Build Coastguard Worker    offset_pair 0, 8
317*7304104dSAndroid Build Coastguard Worker      0x0000000000400570 <calc>..
318*7304104dSAndroid Build Coastguard Worker      0x0000000000400577 <calc+0x7>
319*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
320*7304104dSAndroid Build Coastguard Worker    offset_pair 8, 2b
321*7304104dSAndroid Build Coastguard Worker      0x0000000000400578 <calc+0x8>..
322*7304104dSAndroid Build Coastguard Worker      0x000000000040059a <calc+0x2a>
323*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
324*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
325*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
326*7304104dSAndroid Build Coastguard Worker    end_of_list
327*7304104dSAndroid Build Coastguard Worker
328*7304104dSAndroid Build Coastguard Worker  Offset: c2, Index: 52
329*7304104dSAndroid Build Coastguard Worker    start_length 0x400588, b
330*7304104dSAndroid Build Coastguard Worker      0x0000000000400588 <calc+0x18>..
331*7304104dSAndroid Build Coastguard Worker      0x0000000000400592 <calc+0x22>
332*7304104dSAndroid Build Coastguard Worker        [ 0] reg0
333*7304104dSAndroid Build Coastguard Worker    end_of_list
334*7304104dSAndroid Build Coastguard Worker
335*7304104dSAndroid Build Coastguard Worker  Offset: cf, Index: 5f
336*7304104dSAndroid Build Coastguard Worker    base_address 0x400588
337*7304104dSAndroid Build Coastguard Worker      0x0000000000400588 <calc+0x18>
338*7304104dSAndroid Build Coastguard Worker    offset_pair 0, 2
339*7304104dSAndroid Build Coastguard Worker      0x0000000000400588 <calc+0x18>..
340*7304104dSAndroid Build Coastguard Worker      0x0000000000400589 <calc+0x19>
341*7304104dSAndroid Build Coastguard Worker        [ 0] reg1
342*7304104dSAndroid Build Coastguard Worker    offset_pair 2, 7
343*7304104dSAndroid Build Coastguard Worker      0x000000000040058a <calc+0x1a>..
344*7304104dSAndroid Build Coastguard Worker      0x000000000040058e <calc+0x1e>
345*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
346*7304104dSAndroid Build Coastguard Worker    offset_pair 7, b
347*7304104dSAndroid Build Coastguard Worker      0x000000000040058f <calc+0x1f>..
348*7304104dSAndroid Build Coastguard Worker      0x0000000000400592 <calc+0x22>
349*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
350*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
351*7304104dSAndroid Build Coastguard Worker        [ 3] deref_size 1
352*7304104dSAndroid Build Coastguard Worker        [ 5] const1u 56
353*7304104dSAndroid Build Coastguard Worker        [ 7] shl
354*7304104dSAndroid Build Coastguard Worker        [ 8] const1u 56
355*7304104dSAndroid Build Coastguard Worker        [10] shra
356*7304104dSAndroid Build Coastguard Worker        [11] stack_value
357*7304104dSAndroid Build Coastguard Worker    end_of_list
358*7304104dSAndroid Build Coastguard Worker
359*7304104dSAndroid Build Coastguard Worker  Offset: f3, Index: 83
360*7304104dSAndroid Build Coastguard Worker    base_address 0x400588
361*7304104dSAndroid Build Coastguard Worker      0x0000000000400588 <calc+0x18>
362*7304104dSAndroid Build Coastguard Worker    offset_pair 0, 2
363*7304104dSAndroid Build Coastguard Worker      0x0000000000400588 <calc+0x18>..
364*7304104dSAndroid Build Coastguard Worker      0x0000000000400589 <calc+0x19>
365*7304104dSAndroid Build Coastguard Worker        [ 0] reg1
366*7304104dSAndroid Build Coastguard Worker    offset_pair 2, b
367*7304104dSAndroid Build Coastguard Worker      0x000000000040058a <calc+0x1a>..
368*7304104dSAndroid Build Coastguard Worker      0x0000000000400592 <calc+0x22>
369*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
370*7304104dSAndroid Build Coastguard Worker    end_of_list
371*7304104dSAndroid Build Coastguard Worker
372*7304104dSAndroid Build Coastguard WorkerEOF
373*7304104dSAndroid Build Coastguard Worker
374*7304104dSAndroid Build Coastguard Worker# Same as above, but for DWARF4, note completely different encoding, but
375*7304104dSAndroid Build Coastguard Worker# the information is the same (check with diff -uwb).
376*7304104dSAndroid Build Coastguard Workertestfiles testfile-dwarf-4
377*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=loc testfile-dwarf-4<<\EOF
378*7304104dSAndroid Build Coastguard Worker
379*7304104dSAndroid Build Coastguard WorkerDWARF section [31] '.debug_loc' at offset 0x1c86:
380*7304104dSAndroid Build Coastguard Worker
381*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000400510 <foo>
382*7304104dSAndroid Build Coastguard Worker [     0] range 0, a
383*7304104dSAndroid Build Coastguard Worker          0x0000000000400510 <foo>..
384*7304104dSAndroid Build Coastguard Worker          0x0000000000400519 <foo+0x9>
385*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
386*7304104dSAndroid Build Coastguard Worker          range a, 34
387*7304104dSAndroid Build Coastguard Worker          0x000000000040051a <foo+0xa>..
388*7304104dSAndroid Build Coastguard Worker          0x0000000000400543 <foo+0x33>
389*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
390*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
391*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
392*7304104dSAndroid Build Coastguard Worker [    39] range 1b, 2d
393*7304104dSAndroid Build Coastguard Worker          0x000000000040052b <foo+0x1b>..
394*7304104dSAndroid Build Coastguard Worker          0x000000000040053c <foo+0x2c>
395*7304104dSAndroid Build Coastguard Worker           [ 0] addr 0x601038 <m>
396*7304104dSAndroid Build Coastguard Worker [    64] range 1b, 21
397*7304104dSAndroid Build Coastguard Worker          0x000000000040052b <foo+0x1b>..
398*7304104dSAndroid Build Coastguard Worker          0x0000000000400530 <foo+0x20>
399*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
400*7304104dSAndroid Build Coastguard Worker [    87] range 1b, 27
401*7304104dSAndroid Build Coastguard Worker          0x000000000040052b <foo+0x1b>..
402*7304104dSAndroid Build Coastguard Worker          0x0000000000400536 <foo+0x26>
403*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
404*7304104dSAndroid Build Coastguard Worker          range 29, 2d
405*7304104dSAndroid Build Coastguard Worker          0x0000000000400539 <foo+0x29>..
406*7304104dSAndroid Build Coastguard Worker          0x000000000040053c <foo+0x2c>
407*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
408*7304104dSAndroid Build Coastguard Worker [    bd] range 21, 27
409*7304104dSAndroid Build Coastguard Worker          0x0000000000400531 <foo+0x21>..
410*7304104dSAndroid Build Coastguard Worker          0x0000000000400536 <foo+0x26>
411*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
412*7304104dSAndroid Build Coastguard Worker          range 29, 2d
413*7304104dSAndroid Build Coastguard Worker          0x0000000000400539 <foo+0x29>..
414*7304104dSAndroid Build Coastguard Worker          0x000000000040053c <foo+0x2c>
415*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
416*7304104dSAndroid Build Coastguard Worker [    f3] range 21, 2d
417*7304104dSAndroid Build Coastguard Worker          0x0000000000400531 <foo+0x21>..
418*7304104dSAndroid Build Coastguard Worker          0x000000000040053c <foo+0x2c>
419*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
420*7304104dSAndroid Build Coastguard Worker [   116] range 2d, 33
421*7304104dSAndroid Build Coastguard Worker          0x000000000040053d <foo+0x2d>..
422*7304104dSAndroid Build Coastguard Worker          0x0000000000400542 <foo+0x32>
423*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
424*7304104dSAndroid Build Coastguard Worker [   139] range 40, 4f
425*7304104dSAndroid Build Coastguard Worker          0x0000000000400550 <baz>..
426*7304104dSAndroid Build Coastguard Worker          0x000000000040055e <baz+0xe>
427*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
428*7304104dSAndroid Build Coastguard Worker          range 4f, 51
429*7304104dSAndroid Build Coastguard Worker          0x000000000040055f <baz+0xf>..
430*7304104dSAndroid Build Coastguard Worker          0x0000000000400560 <baz+0x10>
431*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
432*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
433*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
434*7304104dSAndroid Build Coastguard Worker [   172] range 40, 50
435*7304104dSAndroid Build Coastguard Worker          0x0000000000400550 <baz>..
436*7304104dSAndroid Build Coastguard Worker          0x000000000040055f <baz+0xf>
437*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
438*7304104dSAndroid Build Coastguard Worker
439*7304104dSAndroid Build Coastguard Worker CU [   21c] base: 000000000000000000
440*7304104dSAndroid Build Coastguard Worker [   195] range 400410, 400424
441*7304104dSAndroid Build Coastguard Worker          0x0000000000400410 <main>..
442*7304104dSAndroid Build Coastguard Worker          0x0000000000400423 <main+0x13>
443*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
444*7304104dSAndroid Build Coastguard Worker          range 400424, 400430
445*7304104dSAndroid Build Coastguard Worker          0x0000000000400424 <main+0x14>..
446*7304104dSAndroid Build Coastguard Worker          0x000000000040042f <main+0x1f>
447*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
448*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
449*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
450*7304104dSAndroid Build Coastguard Worker [   1ce] range 400410, 400428
451*7304104dSAndroid Build Coastguard Worker          0x0000000000400410 <main>..
452*7304104dSAndroid Build Coastguard Worker          0x0000000000400427 <main+0x17>
453*7304104dSAndroid Build Coastguard Worker           [ 0] reg4
454*7304104dSAndroid Build Coastguard Worker          range 400428, 400430
455*7304104dSAndroid Build Coastguard Worker          0x0000000000400428 <main+0x18>..
456*7304104dSAndroid Build Coastguard Worker          0x000000000040042f <main+0x1f>
457*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
458*7304104dSAndroid Build Coastguard Worker                [ 0] reg4
459*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
460*7304104dSAndroid Build Coastguard Worker [   207] range 400421, 400428
461*7304104dSAndroid Build Coastguard Worker          0x0000000000400421 <main+0x11>..
462*7304104dSAndroid Build Coastguard Worker          0x0000000000400427 <main+0x17>
463*7304104dSAndroid Build Coastguard Worker           [ 0] reg0
464*7304104dSAndroid Build Coastguard Worker [   22a] range 400570, 400578
465*7304104dSAndroid Build Coastguard Worker          0x0000000000400570 <calc>..
466*7304104dSAndroid Build Coastguard Worker          0x0000000000400577 <calc+0x7>
467*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
468*7304104dSAndroid Build Coastguard Worker          range 400578, 40059b
469*7304104dSAndroid Build Coastguard Worker          0x0000000000400578 <calc+0x8>..
470*7304104dSAndroid Build Coastguard Worker          0x000000000040059a <calc+0x2a>
471*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
472*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
473*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
474*7304104dSAndroid Build Coastguard Worker [   263] range 400588, 400593
475*7304104dSAndroid Build Coastguard Worker          0x0000000000400588 <calc+0x18>..
476*7304104dSAndroid Build Coastguard Worker          0x0000000000400592 <calc+0x22>
477*7304104dSAndroid Build Coastguard Worker           [ 0] reg0
478*7304104dSAndroid Build Coastguard Worker [   286] range 400588, 40058a
479*7304104dSAndroid Build Coastguard Worker          0x0000000000400588 <calc+0x18>..
480*7304104dSAndroid Build Coastguard Worker          0x0000000000400589 <calc+0x19>
481*7304104dSAndroid Build Coastguard Worker           [ 0] reg1
482*7304104dSAndroid Build Coastguard Worker          range 40058a, 40058f
483*7304104dSAndroid Build Coastguard Worker          0x000000000040058a <calc+0x1a>..
484*7304104dSAndroid Build Coastguard Worker          0x000000000040058e <calc+0x1e>
485*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
486*7304104dSAndroid Build Coastguard Worker          range 40058f, 400593
487*7304104dSAndroid Build Coastguard Worker          0x000000000040058f <calc+0x1f>..
488*7304104dSAndroid Build Coastguard Worker          0x0000000000400592 <calc+0x22>
489*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
490*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
491*7304104dSAndroid Build Coastguard Worker           [ 3] deref_size 1
492*7304104dSAndroid Build Coastguard Worker           [ 5] const1u 56
493*7304104dSAndroid Build Coastguard Worker           [ 7] shl
494*7304104dSAndroid Build Coastguard Worker           [ 8] const1u 56
495*7304104dSAndroid Build Coastguard Worker           [10] shra
496*7304104dSAndroid Build Coastguard Worker           [11] stack_value
497*7304104dSAndroid Build Coastguard Worker [   2da] range 400588, 40058a
498*7304104dSAndroid Build Coastguard Worker          0x0000000000400588 <calc+0x18>..
499*7304104dSAndroid Build Coastguard Worker          0x0000000000400589 <calc+0x19>
500*7304104dSAndroid Build Coastguard Worker           [ 0] reg1
501*7304104dSAndroid Build Coastguard Worker          range 40058a, 400593
502*7304104dSAndroid Build Coastguard Worker          0x000000000040058a <calc+0x1a>..
503*7304104dSAndroid Build Coastguard Worker          0x0000000000400592 <calc+0x22>
504*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
505*7304104dSAndroid Build Coastguard WorkerEOF
506*7304104dSAndroid Build Coastguard Worker
507*7304104dSAndroid Build Coastguard Worker# Split DWARF5 variant. Note that the .debug_loclists moved to the .dwo file
508*7304104dSAndroid Build Coastguard Worker# and now uses an index and addrx indirections.
509*7304104dSAndroid Build Coastguard Workertestfiles testfile-splitdwarf-5 testfile-hello5.dwo testfile-world5.dwo
510*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=loc --dwarf-skeleton=testfile-splitdwarf-5 testfile-hello5.dwo testfile-world5.dwo <<\EOF
511*7304104dSAndroid Build Coastguard Worker
512*7304104dSAndroid Build Coastguard Workertestfile-hello5.dwo:
513*7304104dSAndroid Build Coastguard Worker
514*7304104dSAndroid Build Coastguard Worker
515*7304104dSAndroid Build Coastguard WorkerDWARF section [ 3] '.debug_loclists.dwo' at offset 0x236:
516*7304104dSAndroid Build Coastguard WorkerTable at Offset 0x0:
517*7304104dSAndroid Build Coastguard Worker
518*7304104dSAndroid Build Coastguard Worker Length:              125
519*7304104dSAndroid Build Coastguard Worker DWARF version:         5
520*7304104dSAndroid Build Coastguard Worker Address size:          8
521*7304104dSAndroid Build Coastguard Worker Segment size:          0
522*7304104dSAndroid Build Coastguard Worker Offset entries:        9
523*7304104dSAndroid Build Coastguard Worker CU [    14] base: 0x0000000000401160 <foo>
524*7304104dSAndroid Build Coastguard Worker
525*7304104dSAndroid Build Coastguard Worker  Offsets starting at 0xc:
526*7304104dSAndroid Build Coastguard Worker   [     0] 0x24
527*7304104dSAndroid Build Coastguard Worker   [     1] 0x32
528*7304104dSAndroid Build Coastguard Worker   [     2] 0x39
529*7304104dSAndroid Build Coastguard Worker   [     3] 0x3f
530*7304104dSAndroid Build Coastguard Worker   [     4] 0x4a
531*7304104dSAndroid Build Coastguard Worker   [     5] 0x55
532*7304104dSAndroid Build Coastguard Worker   [     6] 0x5b
533*7304104dSAndroid Build Coastguard Worker   [     7] 0x61
534*7304104dSAndroid Build Coastguard Worker   [     8] 0x6f
535*7304104dSAndroid Build Coastguard Worker
536*7304104dSAndroid Build Coastguard Worker  Offset: 30, Index: 24
537*7304104dSAndroid Build Coastguard Worker    startx_length f, a
538*7304104dSAndroid Build Coastguard Worker      0x0000000000401160 <foo>..
539*7304104dSAndroid Build Coastguard Worker      0x0000000000401169 <foo+0x9>
540*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
541*7304104dSAndroid Build Coastguard Worker    startx_length 0, 2a
542*7304104dSAndroid Build Coastguard Worker      0x000000000040116a <foo+0xa>..
543*7304104dSAndroid Build Coastguard Worker      0x0000000000401193 <foo+0x33>
544*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
545*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
546*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
547*7304104dSAndroid Build Coastguard Worker    end_of_list
548*7304104dSAndroid Build Coastguard Worker
549*7304104dSAndroid Build Coastguard Worker  Offset: 3e, Index: 32
550*7304104dSAndroid Build Coastguard Worker    startx_length 11, 12
551*7304104dSAndroid Build Coastguard Worker      0x000000000040117b <foo+0x1b>..
552*7304104dSAndroid Build Coastguard Worker      0x000000000040118c <foo+0x2c>
553*7304104dSAndroid Build Coastguard Worker        [ 0] addrx [18] 0x404038 <m>
554*7304104dSAndroid Build Coastguard Worker    end_of_list
555*7304104dSAndroid Build Coastguard Worker
556*7304104dSAndroid Build Coastguard Worker  Offset: 45, Index: 39
557*7304104dSAndroid Build Coastguard Worker    startx_length 11, 6
558*7304104dSAndroid Build Coastguard Worker      0x000000000040117b <foo+0x1b>..
559*7304104dSAndroid Build Coastguard Worker      0x0000000000401180 <foo+0x20>
560*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
561*7304104dSAndroid Build Coastguard Worker    end_of_list
562*7304104dSAndroid Build Coastguard Worker
563*7304104dSAndroid Build Coastguard Worker  Offset: 4b, Index: 3f
564*7304104dSAndroid Build Coastguard Worker    startx_length 11, c
565*7304104dSAndroid Build Coastguard Worker      0x000000000040117b <foo+0x1b>..
566*7304104dSAndroid Build Coastguard Worker      0x0000000000401186 <foo+0x26>
567*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
568*7304104dSAndroid Build Coastguard Worker    startx_length 1, 4
569*7304104dSAndroid Build Coastguard Worker      0x0000000000401189 <foo+0x29>..
570*7304104dSAndroid Build Coastguard Worker      0x000000000040118c <foo+0x2c>
571*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
572*7304104dSAndroid Build Coastguard Worker    end_of_list
573*7304104dSAndroid Build Coastguard Worker
574*7304104dSAndroid Build Coastguard Worker  Offset: 56, Index: 4a
575*7304104dSAndroid Build Coastguard Worker    startx_length 4, 6
576*7304104dSAndroid Build Coastguard Worker      0x0000000000401181 <foo+0x21>..
577*7304104dSAndroid Build Coastguard Worker      0x0000000000401186 <foo+0x26>
578*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
579*7304104dSAndroid Build Coastguard Worker    startx_length 1, 4
580*7304104dSAndroid Build Coastguard Worker      0x0000000000401189 <foo+0x29>..
581*7304104dSAndroid Build Coastguard Worker      0x000000000040118c <foo+0x2c>
582*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
583*7304104dSAndroid Build Coastguard Worker    end_of_list
584*7304104dSAndroid Build Coastguard Worker
585*7304104dSAndroid Build Coastguard Worker  Offset: 61, Index: 55
586*7304104dSAndroid Build Coastguard Worker    startx_length 4, c
587*7304104dSAndroid Build Coastguard Worker      0x0000000000401181 <foo+0x21>..
588*7304104dSAndroid Build Coastguard Worker      0x000000000040118c <foo+0x2c>
589*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
590*7304104dSAndroid Build Coastguard Worker    end_of_list
591*7304104dSAndroid Build Coastguard Worker
592*7304104dSAndroid Build Coastguard Worker  Offset: 67, Index: 5b
593*7304104dSAndroid Build Coastguard Worker    startx_length 2, 6
594*7304104dSAndroid Build Coastguard Worker      0x000000000040118d <foo+0x2d>..
595*7304104dSAndroid Build Coastguard Worker      0x0000000000401192 <foo+0x32>
596*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
597*7304104dSAndroid Build Coastguard Worker    end_of_list
598*7304104dSAndroid Build Coastguard Worker
599*7304104dSAndroid Build Coastguard Worker  Offset: 6d, Index: 61
600*7304104dSAndroid Build Coastguard Worker    startx_length 9, f
601*7304104dSAndroid Build Coastguard Worker      0x00000000004011a0 <baz>..
602*7304104dSAndroid Build Coastguard Worker      0x00000000004011ae <baz+0xe>
603*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
604*7304104dSAndroid Build Coastguard Worker    startx_length 5, 2
605*7304104dSAndroid Build Coastguard Worker      0x00000000004011af <baz+0xf>..
606*7304104dSAndroid Build Coastguard Worker      0x00000000004011b0 <baz+0x10>
607*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
608*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
609*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
610*7304104dSAndroid Build Coastguard Worker    end_of_list
611*7304104dSAndroid Build Coastguard Worker
612*7304104dSAndroid Build Coastguard Worker  Offset: 7b, Index: 6f
613*7304104dSAndroid Build Coastguard Worker    startx_length 9, 10
614*7304104dSAndroid Build Coastguard Worker      0x00000000004011a0 <baz>..
615*7304104dSAndroid Build Coastguard Worker      0x00000000004011af <baz+0xf>
616*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
617*7304104dSAndroid Build Coastguard Worker    end_of_list
618*7304104dSAndroid Build Coastguard Worker
619*7304104dSAndroid Build Coastguard Worker
620*7304104dSAndroid Build Coastguard Workertestfile-world5.dwo:
621*7304104dSAndroid Build Coastguard Worker
622*7304104dSAndroid Build Coastguard Worker
623*7304104dSAndroid Build Coastguard WorkerDWARF section [ 3] '.debug_loclists.dwo' at offset 0x217:
624*7304104dSAndroid Build Coastguard WorkerTable at Offset 0x0:
625*7304104dSAndroid Build Coastguard Worker
626*7304104dSAndroid Build Coastguard Worker Length:              128
627*7304104dSAndroid Build Coastguard Worker DWARF version:         5
628*7304104dSAndroid Build Coastguard Worker Address size:          8
629*7304104dSAndroid Build Coastguard Worker Segment size:          0
630*7304104dSAndroid Build Coastguard Worker Offset entries:        7
631*7304104dSAndroid Build Coastguard Worker CU [    14] base: 000000000000000000
632*7304104dSAndroid Build Coastguard Worker
633*7304104dSAndroid Build Coastguard Worker  Offsets starting at 0xc:
634*7304104dSAndroid Build Coastguard Worker   [     0] 0x1c
635*7304104dSAndroid Build Coastguard Worker   [     1] 0x2a
636*7304104dSAndroid Build Coastguard Worker   [     2] 0x38
637*7304104dSAndroid Build Coastguard Worker   [     3] 0x3e
638*7304104dSAndroid Build Coastguard Worker   [     4] 0x4c
639*7304104dSAndroid Build Coastguard Worker   [     5] 0x52
640*7304104dSAndroid Build Coastguard Worker   [     6] 0x6d
641*7304104dSAndroid Build Coastguard Worker
642*7304104dSAndroid Build Coastguard Worker  Offset: 28, Index: 1c
643*7304104dSAndroid Build Coastguard Worker    startx_length 2, 14
644*7304104dSAndroid Build Coastguard Worker      0x0000000000401060 <main>..
645*7304104dSAndroid Build Coastguard Worker      0x0000000000401073 <main+0x13>
646*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
647*7304104dSAndroid Build Coastguard Worker    startx_length 4, c
648*7304104dSAndroid Build Coastguard Worker      0x0000000000401074 <main+0x14>..
649*7304104dSAndroid Build Coastguard Worker      0x000000000040107f <main+0x1f>
650*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
651*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
652*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
653*7304104dSAndroid Build Coastguard Worker    end_of_list
654*7304104dSAndroid Build Coastguard Worker
655*7304104dSAndroid Build Coastguard Worker  Offset: 36, Index: 2a
656*7304104dSAndroid Build Coastguard Worker    startx_length 2, 18
657*7304104dSAndroid Build Coastguard Worker      0x0000000000401060 <main>..
658*7304104dSAndroid Build Coastguard Worker      0x0000000000401077 <main+0x17>
659*7304104dSAndroid Build Coastguard Worker        [ 0] reg4
660*7304104dSAndroid Build Coastguard Worker    startx_length 7, 6
661*7304104dSAndroid Build Coastguard Worker      0x0000000000401078 <main+0x18>..
662*7304104dSAndroid Build Coastguard Worker      0x000000000040107d <main+0x1d>
663*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
664*7304104dSAndroid Build Coastguard Worker             [ 0] reg4
665*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
666*7304104dSAndroid Build Coastguard Worker    end_of_list
667*7304104dSAndroid Build Coastguard Worker
668*7304104dSAndroid Build Coastguard Worker  Offset: 44, Index: 38
669*7304104dSAndroid Build Coastguard Worker    startx_length 3, 7
670*7304104dSAndroid Build Coastguard Worker      0x0000000000401071 <main+0x11>..
671*7304104dSAndroid Build Coastguard Worker      0x0000000000401077 <main+0x17>
672*7304104dSAndroid Build Coastguard Worker        [ 0] reg0
673*7304104dSAndroid Build Coastguard Worker    end_of_list
674*7304104dSAndroid Build Coastguard Worker
675*7304104dSAndroid Build Coastguard Worker  Offset: 4a, Index: 3e
676*7304104dSAndroid Build Coastguard Worker    startx_length d, 8
677*7304104dSAndroid Build Coastguard Worker      0x00000000004011c0 <calc>..
678*7304104dSAndroid Build Coastguard Worker      0x00000000004011c7 <calc+0x7>
679*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
680*7304104dSAndroid Build Coastguard Worker    startx_length e, 23
681*7304104dSAndroid Build Coastguard Worker      0x00000000004011c8 <calc+0x8>..
682*7304104dSAndroid Build Coastguard Worker      0x00000000004011ea <calc+0x2a>
683*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
684*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
685*7304104dSAndroid Build Coastguard Worker        [ 3] stack_value
686*7304104dSAndroid Build Coastguard Worker    end_of_list
687*7304104dSAndroid Build Coastguard Worker
688*7304104dSAndroid Build Coastguard Worker  Offset: 58, Index: 4c
689*7304104dSAndroid Build Coastguard Worker    startx_length f, b
690*7304104dSAndroid Build Coastguard Worker      0x00000000004011d8 <calc+0x18>..
691*7304104dSAndroid Build Coastguard Worker      0x00000000004011e2 <calc+0x22>
692*7304104dSAndroid Build Coastguard Worker        [ 0] reg0
693*7304104dSAndroid Build Coastguard Worker    end_of_list
694*7304104dSAndroid Build Coastguard Worker
695*7304104dSAndroid Build Coastguard Worker  Offset: 5e, Index: 52
696*7304104dSAndroid Build Coastguard Worker    startx_length f, 2
697*7304104dSAndroid Build Coastguard Worker      0x00000000004011d8 <calc+0x18>..
698*7304104dSAndroid Build Coastguard Worker      0x00000000004011d9 <calc+0x19>
699*7304104dSAndroid Build Coastguard Worker        [ 0] reg1
700*7304104dSAndroid Build Coastguard Worker    startx_length 10, 5
701*7304104dSAndroid Build Coastguard Worker      0x00000000004011da <calc+0x1a>..
702*7304104dSAndroid Build Coastguard Worker      0x00000000004011de <calc+0x1e>
703*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
704*7304104dSAndroid Build Coastguard Worker    startx_length 0, 4
705*7304104dSAndroid Build Coastguard Worker      0x00000000004011df <calc+0x1f>..
706*7304104dSAndroid Build Coastguard Worker      0x00000000004011e2 <calc+0x22>
707*7304104dSAndroid Build Coastguard Worker        [ 0] entry_value:
708*7304104dSAndroid Build Coastguard Worker             [ 0] reg5
709*7304104dSAndroid Build Coastguard Worker        [ 3] deref_size 1
710*7304104dSAndroid Build Coastguard Worker        [ 5] const1u 56
711*7304104dSAndroid Build Coastguard Worker        [ 7] shl
712*7304104dSAndroid Build Coastguard Worker        [ 8] const1u 56
713*7304104dSAndroid Build Coastguard Worker        [10] shra
714*7304104dSAndroid Build Coastguard Worker        [11] stack_value
715*7304104dSAndroid Build Coastguard Worker    end_of_list
716*7304104dSAndroid Build Coastguard Worker
717*7304104dSAndroid Build Coastguard Worker  Offset: 79, Index: 6d
718*7304104dSAndroid Build Coastguard Worker    startx_length f, 2
719*7304104dSAndroid Build Coastguard Worker      0x00000000004011d8 <calc+0x18>..
720*7304104dSAndroid Build Coastguard Worker      0x00000000004011d9 <calc+0x19>
721*7304104dSAndroid Build Coastguard Worker        [ 0] reg1
722*7304104dSAndroid Build Coastguard Worker    startx_length 10, 9
723*7304104dSAndroid Build Coastguard Worker      0x00000000004011da <calc+0x1a>..
724*7304104dSAndroid Build Coastguard Worker      0x00000000004011e2 <calc+0x22>
725*7304104dSAndroid Build Coastguard Worker        [ 0] reg5
726*7304104dSAndroid Build Coastguard Worker    end_of_list
727*7304104dSAndroid Build Coastguard Worker
728*7304104dSAndroid Build Coastguard WorkerEOF
729*7304104dSAndroid Build Coastguard Worker
730*7304104dSAndroid Build Coastguard Worker# GNU DebugFission split-dwarf variant. Still uses .debug_loc, but now in
731*7304104dSAndroid Build Coastguard Worker# .dwo file, with somewhat similar, but different encoding from DWARF5.
732*7304104dSAndroid Build Coastguard Workertestfiles testfile-splitdwarf-4 testfile-hello4.dwo testfile-world4.dwo
733*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=loc --dwarf-skeleton=testfile-splitdwarf-4 testfile-hello4.dwo testfile-world4.dwo <<\EOF
734*7304104dSAndroid Build Coastguard Worker
735*7304104dSAndroid Build Coastguard Workertestfile-hello4.dwo:
736*7304104dSAndroid Build Coastguard Worker
737*7304104dSAndroid Build Coastguard Worker
738*7304104dSAndroid Build Coastguard WorkerDWARF section [ 3] '.debug_loc.dwo' at offset 0x253:
739*7304104dSAndroid Build Coastguard Worker
740*7304104dSAndroid Build Coastguard Worker CU [     b] base: 0x0000000000401160 <foo>
741*7304104dSAndroid Build Coastguard Worker [     0] range 401160, 40116a
742*7304104dSAndroid Build Coastguard Worker          0x0000000000401160 <foo>..
743*7304104dSAndroid Build Coastguard Worker          0x0000000000401169 <foo+0x9>
744*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
745*7304104dSAndroid Build Coastguard Worker          range 40116a, 401194
746*7304104dSAndroid Build Coastguard Worker          0x000000000040116a <foo+0xa>..
747*7304104dSAndroid Build Coastguard Worker          0x0000000000401193 <foo+0x33>
748*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
749*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
750*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
751*7304104dSAndroid Build Coastguard Worker [    16] range 40117b, 40118d
752*7304104dSAndroid Build Coastguard Worker          0x000000000040117b <foo+0x1b>..
753*7304104dSAndroid Build Coastguard Worker          0x000000000040118c <foo+0x2c>
754*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_addr_index [18] 0x404038 <m>
755*7304104dSAndroid Build Coastguard Worker [    21] range 40117b, 401181
756*7304104dSAndroid Build Coastguard Worker          0x000000000040117b <foo+0x1b>..
757*7304104dSAndroid Build Coastguard Worker          0x0000000000401180 <foo+0x20>
758*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
759*7304104dSAndroid Build Coastguard Worker [    2b] range 40117b, 401187
760*7304104dSAndroid Build Coastguard Worker          0x000000000040117b <foo+0x1b>..
761*7304104dSAndroid Build Coastguard Worker          0x0000000000401186 <foo+0x26>
762*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
763*7304104dSAndroid Build Coastguard Worker          range 401189, 40118d
764*7304104dSAndroid Build Coastguard Worker          0x0000000000401189 <foo+0x29>..
765*7304104dSAndroid Build Coastguard Worker          0x000000000040118c <foo+0x2c>
766*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
767*7304104dSAndroid Build Coastguard Worker [    3e] range 401181, 401187
768*7304104dSAndroid Build Coastguard Worker          0x0000000000401181 <foo+0x21>..
769*7304104dSAndroid Build Coastguard Worker          0x0000000000401186 <foo+0x26>
770*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
771*7304104dSAndroid Build Coastguard Worker          range 401189, 40118d
772*7304104dSAndroid Build Coastguard Worker          0x0000000000401189 <foo+0x29>..
773*7304104dSAndroid Build Coastguard Worker          0x000000000040118c <foo+0x2c>
774*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
775*7304104dSAndroid Build Coastguard Worker [    51] range 401181, 40118d
776*7304104dSAndroid Build Coastguard Worker          0x0000000000401181 <foo+0x21>..
777*7304104dSAndroid Build Coastguard Worker          0x000000000040118c <foo+0x2c>
778*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
779*7304104dSAndroid Build Coastguard Worker [    5b] range 40118d, 401193
780*7304104dSAndroid Build Coastguard Worker          0x000000000040118d <foo+0x2d>..
781*7304104dSAndroid Build Coastguard Worker          0x0000000000401192 <foo+0x32>
782*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
783*7304104dSAndroid Build Coastguard Worker [    65] range 4011a0, 4011af
784*7304104dSAndroid Build Coastguard Worker          0x00000000004011a0 <baz>..
785*7304104dSAndroid Build Coastguard Worker          0x00000000004011ae <baz+0xe>
786*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
787*7304104dSAndroid Build Coastguard Worker          range 4011af, 4011b1
788*7304104dSAndroid Build Coastguard Worker          0x00000000004011af <baz+0xf>..
789*7304104dSAndroid Build Coastguard Worker          0x00000000004011b0 <baz+0x10>
790*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
791*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
792*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
793*7304104dSAndroid Build Coastguard Worker [    7b] range 4011a0, 4011b0
794*7304104dSAndroid Build Coastguard Worker          0x00000000004011a0 <baz>..
795*7304104dSAndroid Build Coastguard Worker          0x00000000004011af <baz+0xf>
796*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
797*7304104dSAndroid Build Coastguard Worker
798*7304104dSAndroid Build Coastguard Workertestfile-world4.dwo:
799*7304104dSAndroid Build Coastguard Worker
800*7304104dSAndroid Build Coastguard Worker
801*7304104dSAndroid Build Coastguard WorkerDWARF section [ 3] '.debug_loc.dwo' at offset 0x225:
802*7304104dSAndroid Build Coastguard Worker
803*7304104dSAndroid Build Coastguard Worker CU [     b] base: 000000000000000000
804*7304104dSAndroid Build Coastguard Worker [     0] range 401060, 401074
805*7304104dSAndroid Build Coastguard Worker          0x0000000000401060 <main>..
806*7304104dSAndroid Build Coastguard Worker          0x0000000000401073 <main+0x13>
807*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
808*7304104dSAndroid Build Coastguard Worker          range 401074, 401080
809*7304104dSAndroid Build Coastguard Worker          0x0000000000401074 <main+0x14>..
810*7304104dSAndroid Build Coastguard Worker          0x000000000040107f <main+0x1f>
811*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
812*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
813*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
814*7304104dSAndroid Build Coastguard Worker [    16] range 401060, 401078
815*7304104dSAndroid Build Coastguard Worker          0x0000000000401060 <main>..
816*7304104dSAndroid Build Coastguard Worker          0x0000000000401077 <main+0x17>
817*7304104dSAndroid Build Coastguard Worker           [ 0] reg4
818*7304104dSAndroid Build Coastguard Worker          range 401078, 40107e
819*7304104dSAndroid Build Coastguard Worker          0x0000000000401078 <main+0x18>..
820*7304104dSAndroid Build Coastguard Worker          0x000000000040107d <main+0x1d>
821*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
822*7304104dSAndroid Build Coastguard Worker                [ 0] reg4
823*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
824*7304104dSAndroid Build Coastguard Worker [    2c] range 401071, 401078
825*7304104dSAndroid Build Coastguard Worker          0x0000000000401071 <main+0x11>..
826*7304104dSAndroid Build Coastguard Worker          0x0000000000401077 <main+0x17>
827*7304104dSAndroid Build Coastguard Worker           [ 0] reg0
828*7304104dSAndroid Build Coastguard Worker [    36] range 4011c0, 4011c8
829*7304104dSAndroid Build Coastguard Worker          0x00000000004011c0 <calc>..
830*7304104dSAndroid Build Coastguard Worker          0x00000000004011c7 <calc+0x7>
831*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
832*7304104dSAndroid Build Coastguard Worker          range 4011c8, 4011eb
833*7304104dSAndroid Build Coastguard Worker          0x00000000004011c8 <calc+0x8>..
834*7304104dSAndroid Build Coastguard Worker          0x00000000004011ea <calc+0x2a>
835*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
836*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
837*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
838*7304104dSAndroid Build Coastguard Worker [    4c] range 4011d8, 4011e3
839*7304104dSAndroid Build Coastguard Worker          0x00000000004011d8 <calc+0x18>..
840*7304104dSAndroid Build Coastguard Worker          0x00000000004011e2 <calc+0x22>
841*7304104dSAndroid Build Coastguard Worker           [ 0] reg0
842*7304104dSAndroid Build Coastguard Worker [    56] range 4011d8, 4011da
843*7304104dSAndroid Build Coastguard Worker          0x00000000004011d8 <calc+0x18>..
844*7304104dSAndroid Build Coastguard Worker          0x00000000004011d9 <calc+0x19>
845*7304104dSAndroid Build Coastguard Worker           [ 0] reg1
846*7304104dSAndroid Build Coastguard Worker          range 4011da, 4011df
847*7304104dSAndroid Build Coastguard Worker          0x00000000004011da <calc+0x1a>..
848*7304104dSAndroid Build Coastguard Worker          0x00000000004011de <calc+0x1e>
849*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
850*7304104dSAndroid Build Coastguard Worker          range 4011df, 4011e3
851*7304104dSAndroid Build Coastguard Worker          0x00000000004011df <calc+0x1f>..
852*7304104dSAndroid Build Coastguard Worker          0x00000000004011e2 <calc+0x22>
853*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
854*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
855*7304104dSAndroid Build Coastguard Worker           [ 3] deref_size 1
856*7304104dSAndroid Build Coastguard Worker           [ 5] const1u 56
857*7304104dSAndroid Build Coastguard Worker           [ 7] shl
858*7304104dSAndroid Build Coastguard Worker           [ 8] const1u 56
859*7304104dSAndroid Build Coastguard Worker           [10] shra
860*7304104dSAndroid Build Coastguard Worker           [11] stack_value
861*7304104dSAndroid Build Coastguard Worker [    7d] range 4011d8, 4011da
862*7304104dSAndroid Build Coastguard Worker          0x00000000004011d8 <calc+0x18>..
863*7304104dSAndroid Build Coastguard Worker          0x00000000004011d9 <calc+0x19>
864*7304104dSAndroid Build Coastguard Worker           [ 0] reg1
865*7304104dSAndroid Build Coastguard Worker          range 4011da, 4011e3
866*7304104dSAndroid Build Coastguard Worker          0x00000000004011da <calc+0x1a>..
867*7304104dSAndroid Build Coastguard Worker          0x00000000004011e2 <calc+0x22>
868*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
869*7304104dSAndroid Build Coastguard WorkerEOF
870*7304104dSAndroid Build Coastguard Worker
871*7304104dSAndroid Build Coastguard Worker# Partial dwarf-4 and partial GNU DebugFission split-dwarf.
872*7304104dSAndroid Build Coastguard Worker#
873*7304104dSAndroid Build Coastguard Worker# = popcount.c =
874*7304104dSAndroid Build Coastguard Worker#
875*7304104dSAndroid Build Coastguard Worker# int popcount (unsigned char u)
876*7304104dSAndroid Build Coastguard Worker# {
877*7304104dSAndroid Build Coastguard Worker#   int c = 0;
878*7304104dSAndroid Build Coastguard Worker#   while (u != 0)
879*7304104dSAndroid Build Coastguard Worker#     {
880*7304104dSAndroid Build Coastguard Worker#       if ((u & 1) == 1)
881*7304104dSAndroid Build Coastguard Worker#         c++;
882*7304104dSAndroid Build Coastguard Worker#       u >>= 1;
883*7304104dSAndroid Build Coastguard Worker#     }
884*7304104dSAndroid Build Coastguard Worker#   return c;
885*7304104dSAndroid Build Coastguard Worker# }
886*7304104dSAndroid Build Coastguard Worker#
887*7304104dSAndroid Build Coastguard Worker# = splitdwarf4-not-split4.c =
888*7304104dSAndroid Build Coastguard Worker#
889*7304104dSAndroid Build Coastguard Worker# extern int popcount (unsigned char);
890*7304104dSAndroid Build Coastguard Worker#
891*7304104dSAndroid Build Coastguard Worker# int main (int argc, char **argv)
892*7304104dSAndroid Build Coastguard Worker# {
893*7304104dSAndroid Build Coastguard Worker#   int i;
894*7304104dSAndroid Build Coastguard Worker#   int p = argc;
895*7304104dSAndroid Build Coastguard Worker#   for (i = 0; i < argc;  ++i)
896*7304104dSAndroid Build Coastguard Worker#     p += popcount (argv[i][0]);
897*7304104dSAndroid Build Coastguard Worker#   i += p;
898*7304104dSAndroid Build Coastguard Worker#   return i;
899*7304104dSAndroid Build Coastguard Worker# }
900*7304104dSAndroid Build Coastguard Worker#
901*7304104dSAndroid Build Coastguard Worker# gcc -gdwarf-4 -O2 -c popcount.c
902*7304104dSAndroid Build Coastguard Worker# gcc -gdwarf-4 -gsplit-dwarf -O2 -c splitdwarf4-not-split4.c
903*7304104dSAndroid Build Coastguard Worker# gcc -o testfile-splitdwarf4-not-split4 splitdwarf4-not-split4.o popcount.o
904*7304104dSAndroid Build Coastguard Worker# eu-strip -f testfile-splitdwarf4-not-split4.debug \
905*7304104dSAndroid Build Coastguard Worker#   testfile-splitdwarf4-not-split4
906*7304104dSAndroid Build Coastguard Worker
907*7304104dSAndroid Build Coastguard Workertestfiles testfile-splitdwarf4-not-split4.debug
908*7304104dSAndroid Build Coastguard Workertestfiles splitdwarf4-not-split4.dwo
909*7304104dSAndroid Build Coastguard Worker
910*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --debug-dump=info+ --debug-dump=loc testfile-splitdwarf4-not-split4.debug <<\EOF
911*7304104dSAndroid Build Coastguard Worker
912*7304104dSAndroid Build Coastguard WorkerDWARF section [28] '.debug_info' at offset 0x330:
913*7304104dSAndroid Build Coastguard Worker [Offset]
914*7304104dSAndroid Build Coastguard Worker Compilation unit at offset 0:
915*7304104dSAndroid Build Coastguard Worker Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
916*7304104dSAndroid Build Coastguard Worker Unit type: skeleton (4), Unit id: 0x3d909d7bd0e69c0b
917*7304104dSAndroid Build Coastguard Worker [     b]  compile_unit         abbrev: 1
918*7304104dSAndroid Build Coastguard Worker           ranges               (sec_offset) range list [     0]
919*7304104dSAndroid Build Coastguard Worker           low_pc               (addr) 000000000000000000
920*7304104dSAndroid Build Coastguard Worker           stmt_list            (sec_offset) 0
921*7304104dSAndroid Build Coastguard Worker           GNU_dwo_name         (strp) "splitdwarf4-not-split4.dwo"
922*7304104dSAndroid Build Coastguard Worker           comp_dir             (strp) "/tmp"
923*7304104dSAndroid Build Coastguard Worker           GNU_pubnames         (flag_present) yes
924*7304104dSAndroid Build Coastguard Worker           GNU_addr_base        (sec_offset) address base [     0]
925*7304104dSAndroid Build Coastguard Worker           GNU_dwo_id           (data8) 0x3d909d7bd0e69c0b
926*7304104dSAndroid Build Coastguard Worker           GNU_ranges_base      (sec_offset) 0
927*7304104dSAndroid Build Coastguard Worker Split compilation unit at offset 0:
928*7304104dSAndroid Build Coastguard Worker Version: 4, Abbreviation section offset: 0, Address size: 8, Offset size: 4
929*7304104dSAndroid Build Coastguard Worker Unit type: skeleton (4), Unit id: 0x3d909d7bd0e69c0b
930*7304104dSAndroid Build Coastguard Worker {     b}  compile_unit         abbrev: 1
931*7304104dSAndroid Build Coastguard Worker           producer             (GNU_str_index) "GNU C17 9.0.0 20180528 (experimental) -mtune=generic -march=x86-64 -gdwarf-4 -gsplit-dwarf -O2"
932*7304104dSAndroid Build Coastguard Worker           language             (data1) C99 (12)
933*7304104dSAndroid Build Coastguard Worker           name                 (GNU_str_index) "splitdwarf4-not-split4.c"
934*7304104dSAndroid Build Coastguard Worker           comp_dir             (GNU_str_index) "/tmp"
935*7304104dSAndroid Build Coastguard Worker           GNU_dwo_id           (data8) 0x3d909d7bd0e69c0b
936*7304104dSAndroid Build Coastguard Worker {    18}    subprogram           abbrev: 2
937*7304104dSAndroid Build Coastguard Worker             external             (flag_present) yes
938*7304104dSAndroid Build Coastguard Worker             name                 (GNU_str_index) "main"
939*7304104dSAndroid Build Coastguard Worker             decl_file            (data1) splitdwarf4-not-split4.c (1)
940*7304104dSAndroid Build Coastguard Worker             decl_line            (data1) 3
941*7304104dSAndroid Build Coastguard Worker             decl_column          (data1) 5
942*7304104dSAndroid Build Coastguard Worker             prototyped           (flag_present) yes
943*7304104dSAndroid Build Coastguard Worker             type                 (ref4) {    6d}
944*7304104dSAndroid Build Coastguard Worker             low_pc               (GNU_addr_index) [4] 0x0000000000401050 <main>
945*7304104dSAndroid Build Coastguard Worker             high_pc              (data8) 76 (0x000000000040109c <_start>)
946*7304104dSAndroid Build Coastguard Worker             frame_base           (exprloc)
947*7304104dSAndroid Build Coastguard Worker              [ 0] call_frame_cfa
948*7304104dSAndroid Build Coastguard Worker             GNU_all_call_sites   (flag_present) yes
949*7304104dSAndroid Build Coastguard Worker             sibling              (ref4) {    6d}
950*7304104dSAndroid Build Coastguard Worker {    30}      formal_parameter     abbrev: 3
951*7304104dSAndroid Build Coastguard Worker               name                 (GNU_str_index) "argc"
952*7304104dSAndroid Build Coastguard Worker               decl_file            (data1) splitdwarf4-not-split4.c (1)
953*7304104dSAndroid Build Coastguard Worker               decl_line            (data1) 3
954*7304104dSAndroid Build Coastguard Worker               decl_column          (data1) 15
955*7304104dSAndroid Build Coastguard Worker               type                 (ref4) {    6d}
956*7304104dSAndroid Build Coastguard Worker               location             (sec_offset) location list [     0]
957*7304104dSAndroid Build Coastguard Worker {    3d}      formal_parameter     abbrev: 3
958*7304104dSAndroid Build Coastguard Worker               name                 (GNU_str_index) "argv"
959*7304104dSAndroid Build Coastguard Worker               decl_file            (data1) splitdwarf4-not-split4.c (1)
960*7304104dSAndroid Build Coastguard Worker               decl_line            (data1) 3
961*7304104dSAndroid Build Coastguard Worker               decl_column          (data1) 28
962*7304104dSAndroid Build Coastguard Worker               type                 (ref4) {    74}
963*7304104dSAndroid Build Coastguard Worker               location             (sec_offset) location list [    28]
964*7304104dSAndroid Build Coastguard Worker {    4a}      variable             abbrev: 4
965*7304104dSAndroid Build Coastguard Worker               name                 (string) "i"
966*7304104dSAndroid Build Coastguard Worker               decl_file            (data1) splitdwarf4-not-split4.c (1)
967*7304104dSAndroid Build Coastguard Worker               decl_line            (data1) 5
968*7304104dSAndroid Build Coastguard Worker               decl_column          (data1) 7
969*7304104dSAndroid Build Coastguard Worker               type                 (ref4) {    6d}
970*7304104dSAndroid Build Coastguard Worker               location             (sec_offset) location list [    47]
971*7304104dSAndroid Build Coastguard Worker {    58}      variable             abbrev: 4
972*7304104dSAndroid Build Coastguard Worker               name                 (string) "p"
973*7304104dSAndroid Build Coastguard Worker               decl_file            (data1) splitdwarf4-not-split4.c (1)
974*7304104dSAndroid Build Coastguard Worker               decl_line            (data1) 6
975*7304104dSAndroid Build Coastguard Worker               decl_column          (data1) 7
976*7304104dSAndroid Build Coastguard Worker               type                 (ref4) {    6d}
977*7304104dSAndroid Build Coastguard Worker               location             (sec_offset) location list [    73]
978*7304104dSAndroid Build Coastguard Worker {    66}      GNU_call_site        abbrev: 5
979*7304104dSAndroid Build Coastguard Worker               low_pc               (GNU_addr_index) [1] 0x000000000040107f <main+0x2f>
980*7304104dSAndroid Build Coastguard Worker               abstract_origin      (ref4) {    84}
981*7304104dSAndroid Build Coastguard Worker {    6d}    base_type            abbrev: 6
982*7304104dSAndroid Build Coastguard Worker             byte_size            (data1) 4
983*7304104dSAndroid Build Coastguard Worker             encoding             (data1) signed (5)
984*7304104dSAndroid Build Coastguard Worker             name                 (string) "int"
985*7304104dSAndroid Build Coastguard Worker {    74}    pointer_type         abbrev: 7
986*7304104dSAndroid Build Coastguard Worker             byte_size            (data1) 8
987*7304104dSAndroid Build Coastguard Worker             type                 (ref4) {    7a}
988*7304104dSAndroid Build Coastguard Worker {    7a}    pointer_type         abbrev: 7
989*7304104dSAndroid Build Coastguard Worker             byte_size            (data1) 8
990*7304104dSAndroid Build Coastguard Worker             type                 (ref4) {    80}
991*7304104dSAndroid Build Coastguard Worker {    80}    base_type            abbrev: 8
992*7304104dSAndroid Build Coastguard Worker             byte_size            (data1) 1
993*7304104dSAndroid Build Coastguard Worker             encoding             (data1) signed_char (6)
994*7304104dSAndroid Build Coastguard Worker             name                 (GNU_str_index) "char"
995*7304104dSAndroid Build Coastguard Worker {    84}    subprogram           abbrev: 9
996*7304104dSAndroid Build Coastguard Worker             external             (flag_present) yes
997*7304104dSAndroid Build Coastguard Worker             declaration          (flag_present) yes
998*7304104dSAndroid Build Coastguard Worker             linkage_name         (GNU_str_index) "popcount"
999*7304104dSAndroid Build Coastguard Worker             name                 (GNU_str_index) "popcount"
1000*7304104dSAndroid Build Coastguard Worker             decl_file            (data1) splitdwarf4-not-split4.c (1)
1001*7304104dSAndroid Build Coastguard Worker             decl_line            (data1) 1
1002*7304104dSAndroid Build Coastguard Worker             decl_column          (data1) 12
1003*7304104dSAndroid Build Coastguard Worker Compilation unit at offset 52:
1004*7304104dSAndroid Build Coastguard Worker Version: 4, Abbreviation section offset: 29, Address size: 8, Offset size: 4
1005*7304104dSAndroid Build Coastguard Worker [    3f]  compile_unit         abbrev: 1
1006*7304104dSAndroid Build Coastguard Worker           producer             (strp) "GNU C17 9.0.0 20180528 (experimental) -mtune=generic -march=x86-64 -gdwarf-4 -O2"
1007*7304104dSAndroid Build Coastguard Worker           language             (data1) C99 (12)
1008*7304104dSAndroid Build Coastguard Worker           name                 (strp) "popcount.c"
1009*7304104dSAndroid Build Coastguard Worker           comp_dir             (strp) "/tmp"
1010*7304104dSAndroid Build Coastguard Worker           low_pc               (addr) 0x0000000000401180 <popcount>
1011*7304104dSAndroid Build Coastguard Worker           high_pc              (data8) 33 (0x00000000004011a1)
1012*7304104dSAndroid Build Coastguard Worker           stmt_list            (sec_offset) 145
1013*7304104dSAndroid Build Coastguard Worker [    61]    subprogram           abbrev: 2
1014*7304104dSAndroid Build Coastguard Worker             external             (flag_present) yes
1015*7304104dSAndroid Build Coastguard Worker             name                 (strp) "popcount"
1016*7304104dSAndroid Build Coastguard Worker             decl_file            (data1) popcount.c (1)
1017*7304104dSAndroid Build Coastguard Worker             decl_line            (data1) 1
1018*7304104dSAndroid Build Coastguard Worker             decl_column          (data1) 5
1019*7304104dSAndroid Build Coastguard Worker             prototyped           (flag_present) yes
1020*7304104dSAndroid Build Coastguard Worker             type                 (ref4) [    a0]
1021*7304104dSAndroid Build Coastguard Worker             low_pc               (addr) 0x0000000000401180 <popcount>
1022*7304104dSAndroid Build Coastguard Worker             high_pc              (data8) 33 (0x00000000004011a1)
1023*7304104dSAndroid Build Coastguard Worker             frame_base           (exprloc)
1024*7304104dSAndroid Build Coastguard Worker              [ 0] call_frame_cfa
1025*7304104dSAndroid Build Coastguard Worker             GNU_all_call_sites   (flag_present) yes
1026*7304104dSAndroid Build Coastguard Worker             sibling              (ref4) [    a0]
1027*7304104dSAndroid Build Coastguard Worker [    83]      formal_parameter     abbrev: 3
1028*7304104dSAndroid Build Coastguard Worker               name                 (string) "u"
1029*7304104dSAndroid Build Coastguard Worker               decl_file            (data1) popcount.c (1)
1030*7304104dSAndroid Build Coastguard Worker               decl_line            (data1) 1
1031*7304104dSAndroid Build Coastguard Worker               decl_column          (data1) 29
1032*7304104dSAndroid Build Coastguard Worker               type                 (ref4) [    a7]
1033*7304104dSAndroid Build Coastguard Worker               location             (sec_offset) location list [     0]
1034*7304104dSAndroid Build Coastguard Worker [    91]      variable             abbrev: 4
1035*7304104dSAndroid Build Coastguard Worker               name                 (string) "c"
1036*7304104dSAndroid Build Coastguard Worker               decl_file            (data1) popcount.c (1)
1037*7304104dSAndroid Build Coastguard Worker               decl_line            (data1) 3
1038*7304104dSAndroid Build Coastguard Worker               decl_column          (data1) 7
1039*7304104dSAndroid Build Coastguard Worker               type                 (ref4) [    a0]
1040*7304104dSAndroid Build Coastguard Worker               location             (sec_offset) location list [    60]
1041*7304104dSAndroid Build Coastguard Worker [    a0]    base_type            abbrev: 5
1042*7304104dSAndroid Build Coastguard Worker             byte_size            (data1) 4
1043*7304104dSAndroid Build Coastguard Worker             encoding             (data1) signed (5)
1044*7304104dSAndroid Build Coastguard Worker             name                 (string) "int"
1045*7304104dSAndroid Build Coastguard Worker [    a7]    base_type            abbrev: 6
1046*7304104dSAndroid Build Coastguard Worker             byte_size            (data1) 1
1047*7304104dSAndroid Build Coastguard Worker             encoding             (data1) unsigned_char (8)
1048*7304104dSAndroid Build Coastguard Worker             name                 (strp) "unsigned char"
1049*7304104dSAndroid Build Coastguard Worker
1050*7304104dSAndroid Build Coastguard WorkerDWARF section [32] '.debug_loc' at offset 0x5ef:
1051*7304104dSAndroid Build Coastguard Worker
1052*7304104dSAndroid Build Coastguard Worker CU [    3f] base: 0x0000000000401180 <popcount>
1053*7304104dSAndroid Build Coastguard Worker [     0] range 0, 9
1054*7304104dSAndroid Build Coastguard Worker          0x0000000000401180 <popcount>..
1055*7304104dSAndroid Build Coastguard Worker          0x0000000000401188 <popcount+0x8>
1056*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
1057*7304104dSAndroid Build Coastguard Worker          range 9, 1b
1058*7304104dSAndroid Build Coastguard Worker          0x0000000000401189 <popcount+0x9>..
1059*7304104dSAndroid Build Coastguard Worker          0x000000000040119a <popcount+0x1a>
1060*7304104dSAndroid Build Coastguard Worker           [ 0] reg1
1061*7304104dSAndroid Build Coastguard Worker          range 1b, 1d
1062*7304104dSAndroid Build Coastguard Worker          0x000000000040119b <popcount+0x1b>..
1063*7304104dSAndroid Build Coastguard Worker          0x000000000040119c <popcount+0x1c>
1064*7304104dSAndroid Build Coastguard Worker           [ 0] breg1 0
1065*7304104dSAndroid Build Coastguard Worker           [ 2] lit1
1066*7304104dSAndroid Build Coastguard Worker           [ 3] shr
1067*7304104dSAndroid Build Coastguard Worker           [ 4] stack_value
1068*7304104dSAndroid Build Coastguard Worker          range 1d, 21
1069*7304104dSAndroid Build Coastguard Worker          0x000000000040119d <popcount+0x1d>..
1070*7304104dSAndroid Build Coastguard Worker          0x00000000004011a0 <popcount+0x20>
1071*7304104dSAndroid Build Coastguard Worker           [ 0] reg1
1072*7304104dSAndroid Build Coastguard Worker [    60] range 0, 9
1073*7304104dSAndroid Build Coastguard Worker          0x0000000000401180 <popcount>..
1074*7304104dSAndroid Build Coastguard Worker          0x0000000000401188 <popcount+0x8>
1075*7304104dSAndroid Build Coastguard Worker           [ 0] lit0
1076*7304104dSAndroid Build Coastguard Worker           [ 1] stack_value
1077*7304104dSAndroid Build Coastguard Worker          range 9, 20
1078*7304104dSAndroid Build Coastguard Worker          0x0000000000401189 <popcount+0x9>..
1079*7304104dSAndroid Build Coastguard Worker          0x000000000040119f <popcount+0x1f>
1080*7304104dSAndroid Build Coastguard Worker           [ 0] reg0
1081*7304104dSAndroid Build Coastguard Worker          range 20, 21
1082*7304104dSAndroid Build Coastguard Worker          0x00000000004011a0 <popcount+0x20>..
1083*7304104dSAndroid Build Coastguard Worker          0x00000000004011a0 <popcount+0x20>
1084*7304104dSAndroid Build Coastguard Worker           [ 0] lit0
1085*7304104dSAndroid Build Coastguard Worker           [ 1] stack_value
1086*7304104dSAndroid Build Coastguard WorkerEOF
1087*7304104dSAndroid Build Coastguard Worker
1088*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/readelf --dwarf-skeleton=testfile-splitdwarf4-not-split4.debug --debug-dump=loc splitdwarf4-not-split4.dwo <<\EOF
1089*7304104dSAndroid Build Coastguard Worker
1090*7304104dSAndroid Build Coastguard WorkerDWARF section [ 3] '.debug_loc.dwo' at offset 0x15b:
1091*7304104dSAndroid Build Coastguard Worker
1092*7304104dSAndroid Build Coastguard Worker CU [     b] base: 000000000000000000
1093*7304104dSAndroid Build Coastguard Worker [     0] range 401050, 40106e
1094*7304104dSAndroid Build Coastguard Worker          0x0000000000401050 <main>..
1095*7304104dSAndroid Build Coastguard Worker          0x000000000040106d <main+0x1d>
1096*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
1097*7304104dSAndroid Build Coastguard Worker          range 40106e, 401086
1098*7304104dSAndroid Build Coastguard Worker          0x000000000040106e <main+0x1e>..
1099*7304104dSAndroid Build Coastguard Worker          0x0000000000401085 <main+0x35>
1100*7304104dSAndroid Build Coastguard Worker           [ 0] reg12
1101*7304104dSAndroid Build Coastguard Worker          range 401086, 401095
1102*7304104dSAndroid Build Coastguard Worker          0x0000000000401086 <main+0x36>..
1103*7304104dSAndroid Build Coastguard Worker          0x0000000000401094 <main+0x44>
1104*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
1105*7304104dSAndroid Build Coastguard Worker                [ 0] reg5
1106*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
1107*7304104dSAndroid Build Coastguard Worker          range 401095, 40109c
1108*7304104dSAndroid Build Coastguard Worker          0x0000000000401095 <main+0x45>..
1109*7304104dSAndroid Build Coastguard Worker          0x000000000040109b <main+0x4b>
1110*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
1111*7304104dSAndroid Build Coastguard Worker [    28] range 401050, 40106e
1112*7304104dSAndroid Build Coastguard Worker          0x0000000000401050 <main>..
1113*7304104dSAndroid Build Coastguard Worker          0x000000000040106d <main+0x1d>
1114*7304104dSAndroid Build Coastguard Worker           [ 0] reg4
1115*7304104dSAndroid Build Coastguard Worker          range 40106e, 401095
1116*7304104dSAndroid Build Coastguard Worker          0x000000000040106e <main+0x1e>..
1117*7304104dSAndroid Build Coastguard Worker          0x0000000000401094 <main+0x44>
1118*7304104dSAndroid Build Coastguard Worker           [ 0] GNU_entry_value:
1119*7304104dSAndroid Build Coastguard Worker                [ 0] reg4
1120*7304104dSAndroid Build Coastguard Worker           [ 3] stack_value
1121*7304104dSAndroid Build Coastguard Worker          range 401095, 40109c
1122*7304104dSAndroid Build Coastguard Worker          0x0000000000401095 <main+0x45>..
1123*7304104dSAndroid Build Coastguard Worker          0x000000000040109b <main+0x4b>
1124*7304104dSAndroid Build Coastguard Worker           [ 0] reg4
1125*7304104dSAndroid Build Coastguard Worker [    47] range 401050, 40106e
1126*7304104dSAndroid Build Coastguard Worker          0x0000000000401050 <main>..
1127*7304104dSAndroid Build Coastguard Worker          0x000000000040106d <main+0x1d>
1128*7304104dSAndroid Build Coastguard Worker           [ 0] lit0
1129*7304104dSAndroid Build Coastguard Worker           [ 1] stack_value
1130*7304104dSAndroid Build Coastguard Worker          range 401086, 40108e
1131*7304104dSAndroid Build Coastguard Worker          0x0000000000401086 <main+0x36>..
1132*7304104dSAndroid Build Coastguard Worker          0x000000000040108d <main+0x3d>
1133*7304104dSAndroid Build Coastguard Worker           [ 0] breg12 0
1134*7304104dSAndroid Build Coastguard Worker           [ 2] breg6 0
1135*7304104dSAndroid Build Coastguard Worker           [ 4] plus
1136*7304104dSAndroid Build Coastguard Worker           [ 5] stack_value
1137*7304104dSAndroid Build Coastguard Worker          range 40108e, 401095
1138*7304104dSAndroid Build Coastguard Worker          0x000000000040108e <main+0x3e>..
1139*7304104dSAndroid Build Coastguard Worker          0x0000000000401094 <main+0x44>
1140*7304104dSAndroid Build Coastguard Worker           [ 0] reg0
1141*7304104dSAndroid Build Coastguard Worker          range 401095, 40109c
1142*7304104dSAndroid Build Coastguard Worker          0x0000000000401095 <main+0x45>..
1143*7304104dSAndroid Build Coastguard Worker          0x000000000040109b <main+0x4b>
1144*7304104dSAndroid Build Coastguard Worker           [ 0] lit0
1145*7304104dSAndroid Build Coastguard Worker           [ 1] stack_value
1146*7304104dSAndroid Build Coastguard Worker [    73] range 401050, 40106e
1147*7304104dSAndroid Build Coastguard Worker          0x0000000000401050 <main>..
1148*7304104dSAndroid Build Coastguard Worker          0x000000000040106d <main+0x1d>
1149*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
1150*7304104dSAndroid Build Coastguard Worker          range 40106e, 401090
1151*7304104dSAndroid Build Coastguard Worker          0x000000000040106e <main+0x1e>..
1152*7304104dSAndroid Build Coastguard Worker          0x000000000040108f <main+0x3f>
1153*7304104dSAndroid Build Coastguard Worker           [ 0] reg6
1154*7304104dSAndroid Build Coastguard Worker          range 401095, 40109c
1155*7304104dSAndroid Build Coastguard Worker          0x0000000000401095 <main+0x45>..
1156*7304104dSAndroid Build Coastguard Worker          0x000000000040109b <main+0x4b>
1157*7304104dSAndroid Build Coastguard Worker           [ 0] reg5
1158*7304104dSAndroid Build Coastguard WorkerEOF
1159*7304104dSAndroid Build Coastguard Worker
1160*7304104dSAndroid Build Coastguard Workerexit 0
1161