blob: 82c3417e47abb7067a8956d05e98910cf5757a21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
|
#! /bin/sh
# Copyright (C) 2013 Red Hat, Inc.
# This file is part of elfutils.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# elfutils is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. $srcdir/test-subr.sh
# Tests readelf -s and readelf --elf-section -s
# See also run-dwflsyms.sh
#
# - bar.c
#
# static int b1 = 1;
# int b2 = 1;
#
# static int
# foo (int a)
# {
# return a + b2;
# }
#
# int bar (int b)
# {
# return b - foo (b - b1);
# }
#
# - foo.c
#
# extern int bar (int b);
# extern int b2;
#
# int
# main (int argc, char ** argv)
# {
# return bar (argc + b2);
# }
#
# gcc -pie -g -c foo.c
# gcc -pie -g -c bar.c
# gcc -pie -g -o baz foo.o bar.o
#
# - testfilebaztab (dynsym + symtab)
# cp baz testfilebaztab
#
# - testfilebazdbg (dynsym + .debug file)
# eu-strip --remove-comment -f testfilebazdbg.debug baz
# cp baz testfilebazdbg
#
#- testfilebazdyn (dynsym only)
# objcopy --remove-section=.gnu_debuglink baz testfilebazdyn
#
# - testfilebazmdb (dynsym + gnu_debugdata + .debug)
# This is how rpmbuild does it:
# nm -D baz --format=posix --defined-only | awk '{ print $1 }' | sort > dynsyms
# nm baz.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
# comm -13 dynsyms funcsyms > keep_symbols
# objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=keep_symbols baz.debug mini_debuginfo
# rm -f mini_debuginfo.xz
# xz mini_debuginfo
# objcopy --add-section .gnu_debugdata=mini_debuginfo.xz baz
# cp baz testfilebazmdb
#
# - testfilebazmin (dynsym + gnu_debugdata)
# objcopy --remove-section=.gnu_debuglink baz testfilebazmin
#
#
# Special auxiliary only, can happen with static binaries.
# - start.c
#
# extern int main (int argc, char ** argv);
# void _start (void) { for (;;) main (1, 0); }
#
# gcc -g -c start.c
# gcc -static -nostdlib -o bas foo.o bar.o start.o
#
# eu-strip --remove-comment -f bas.debug bas
# nm bas.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
# objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=funcsyms bas.debug mini_debuginfo
# rm -f mini_debuginfo.xz
# xz mini_debuginfo
# objcopy --add-section .gnu_debugdata=mini_debuginfo.xz bas
# rm bas.debug
# mv bas testfilebasmin
#
#
# Make sure that find_aux_sym doesn't corrupt relocations, avoiding a kernel
# heuristic that forces ET_EXEC->ET_DYN. NB: ld.gold doesn't seem to produce
# the mismatched load addrs between the main file and the mini_debuginfo, so
# this is forcing ld.bfd.
#
# gcc -g -o bax foo.c bar.c -fuse-ld=bfd
# eu-strip --remove-comment -f bax.debug bax
# nm -D bax --format=posix --defined-only | awk '{ print $1 }' | sort > dynsyms
# nm bax.debug --format=posix --defined-only | awk '{ if ($2 == "T" || $2 == "t") print $1 }' | sort > funcsyms
# comm -13 dynsyms funcsyms > keep_symbols
# objcopy -S --remove-section .gdb_index --remove-section .comment --keep-symbols=keep_symbols bax.debug mini_debuginfo
# rm -f mini_debuginfo.xz
# xz mini_debuginfo
# objcopy --add-section .gnu_debugdata=mini_debuginfo.xz bax
# objcopy --remove-section=.gnu_debuglink bax testfilebaxmin
testfiles testfilebaztab
testfiles testfilebazdbg testfilebazdbg.debug
testfiles testfilebazdyn
testfiles testfilebazmdb
testfiles testfilebazmin
testfiles testfilebasmin
testfiles testfilebaxmin
tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in
cat > testfile.dynsym.in <<\EOF
Symbol table [ 5] '.dynsym' contains 14 entries:
2 local symbols String table: [ 6] '.dynstr'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 0000000000000238 0 SECTION LOCAL DEFAULT 1
2: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF _ITM_deregisterTMCloneTable
3: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __libc_start_main@GLIBC_2.2.5 (2)
4: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF __gmon_start__
5: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF _Jv_RegisterClasses
6: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF _ITM_registerTMCloneTable
7: 0000000000000000 0 FUNC WEAK DEFAULT UNDEF __cxa_finalize@GLIBC_2.2.5 (2)
8: 000000000020103c 0 NOTYPE GLOBAL DEFAULT 25 _edata
9: 0000000000201040 0 NOTYPE GLOBAL DEFAULT 26 _end
10: 0000000000000860 137 FUNC GLOBAL DEFAULT 13 __libc_csu_init
11: 000000000020103c 0 NOTYPE GLOBAL DEFAULT 26 __bss_start
12: 00000000000007f0 35 FUNC GLOBAL DEFAULT 13 main
13: 00000000000008f0 2 FUNC GLOBAL DEFAULT 13 __libc_csu_fini
EOF
cat > testfile.symtab.in <<\EOF
Symbol table [34] '.symtab' contains 76 entries:
54 local symbols String table: [35] '.strtab'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 0000000000000238 0 SECTION LOCAL DEFAULT 1
2: 0000000000000254 0 SECTION LOCAL DEFAULT 2
3: 0000000000000274 0 SECTION LOCAL DEFAULT 3
4: 0000000000000298 0 SECTION LOCAL DEFAULT 4
5: 00000000000002d8 0 SECTION LOCAL DEFAULT 5
6: 0000000000000428 0 SECTION LOCAL DEFAULT 6
7: 00000000000004f2 0 SECTION LOCAL DEFAULT 7
8: 0000000000000510 0 SECTION LOCAL DEFAULT 8
9: 0000000000000530 0 SECTION LOCAL DEFAULT 9
10: 0000000000000638 0 SECTION LOCAL DEFAULT 10
11: 0000000000000680 0 SECTION LOCAL DEFAULT 11
12: 00000000000006a0 0 SECTION LOCAL DEFAULT 12
13: 00000000000006e0 0 SECTION LOCAL DEFAULT 13
14: 00000000000008f4 0 SECTION LOCAL DEFAULT 14
15: 0000000000000900 0 SECTION LOCAL DEFAULT 15
16: 0000000000000904 0 SECTION LOCAL DEFAULT 16
17: 0000000000000948 0 SECTION LOCAL DEFAULT 17
18: 0000000000200dd0 0 SECTION LOCAL DEFAULT 18
19: 0000000000200dd8 0 SECTION LOCAL DEFAULT 19
20: 0000000000200de0 0 SECTION LOCAL DEFAULT 20
21: 0000000000200de8 0 SECTION LOCAL DEFAULT 21
22: 0000000000200df0 0 SECTION LOCAL DEFAULT 22
23: 0000000000200fc0 0 SECTION LOCAL DEFAULT 23
24: 0000000000201000 0 SECTION LOCAL DEFAULT 24
25: 0000000000201030 0 SECTION LOCAL DEFAULT 25
26: 000000000020103c 0 SECTION LOCAL DEFAULT 26
27: 0000000000000000 0 SECTION LOCAL DEFAULT 27
28: 0000000000000000 0 SECTION LOCAL DEFAULT 28
29: 0000000000000000 0 SECTION LOCAL DEFAULT 29
30: 0000000000000000 0 SECTION LOCAL DEFAULT 30
31: 0000000000000000 0 SECTION LOCAL DEFAULT 31
32: 0000000000000000 0 SECTION LOCAL DEFAULT 32
33: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
34: 0000000000200de0 0 OBJECT LOCAL DEFAULT 20 __JCR_LIST__
35: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones
36: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones
37: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux
38: 000000000020103c 1 OBJECT LOCAL DEFAULT 26 completed.6137
39: 0000000000200dd8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry
40: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 frame_dummy
41: 0000000000200dd0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry
42: 0000000000000000 0 FILE LOCAL DEFAULT ABS foo.c
43: 0000000000000000 0 FILE LOCAL DEFAULT ABS bar.c
44: 0000000000201034 4 OBJECT LOCAL DEFAULT 25 b1
45: 0000000000000814 20 FUNC LOCAL DEFAULT 13 foo
46: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
47: 0000000000000a58 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__
48: 0000000000200de0 0 OBJECT LOCAL DEFAULT 20 __JCR_END__
49: 0000000000000000 0 FILE LOCAL DEFAULT ABS
50: 0000000000200dd8 0 NOTYPE LOCAL DEFAULT 18 __init_array_end
51: 0000000000200df0 0 OBJECT LOCAL DEFAULT 22 _DYNAMIC
52: 0000000000200dd0 0 NOTYPE LOCAL DEFAULT 18 __init_array_start
53: 0000000000201000 0 OBJECT LOCAL DEFAULT 24 _GLOBAL_OFFSET_TABLE_
54: 00000000000008f0 2 FUNC GLOBAL DEFAULT 13 __libc_csu_fini
55: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF _ITM_deregisterTMCloneTable
56: 0000000000201030 0 NOTYPE WEAK DEFAULT 25 data_start
57: 000000000020103c 0 NOTYPE GLOBAL DEFAULT 25 _edata
58: 0000000000000828 44 FUNC GLOBAL DEFAULT 13 bar
59: 00000000000008f4 0 FUNC GLOBAL DEFAULT 14 _fini
60: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __libc_start_main@@GLIBC_2.2.5
61: 0000000000201030 0 NOTYPE GLOBAL DEFAULT 25 __data_start
62: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF __gmon_start__
63: 0000000000200de8 0 OBJECT GLOBAL HIDDEN 21 __dso_handle
64: 0000000000000900 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used
65: 0000000000201038 4 OBJECT GLOBAL DEFAULT 25 b2
66: 0000000000000860 137 FUNC GLOBAL DEFAULT 13 __libc_csu_init
67: 0000000000201040 0 NOTYPE GLOBAL DEFAULT 26 _end
68: 00000000000006e0 0 FUNC GLOBAL DEFAULT 13 _start
69: 000000000020103c 0 NOTYPE GLOBAL DEFAULT 26 __bss_start
70: 00000000000007f0 35 FUNC GLOBAL DEFAULT 13 main
71: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF _Jv_RegisterClasses
72: 0000000000201040 0 OBJECT GLOBAL HIDDEN 25 __TMC_END__
73: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF _ITM_registerTMCloneTable
74: 0000000000000000 0 FUNC WEAK DEFAULT UNDEF __cxa_finalize@@GLIBC_2.2.5
75: 0000000000000680 0 FUNC GLOBAL DEFAULT 11 _init
EOF
cat > testfile.minsym.in <<\EOF
Symbol table [28] '.symtab' contains 40 entries:
36 local symbols String table: [29] '.strtab'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 0000000000000710 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones
2: 0000000000000740 0 FUNC LOCAL DEFAULT 13 register_tm_clones
3: 0000000000000780 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux
4: 0000000000200dd8 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry
5: 00000000000007c0 0 FUNC LOCAL DEFAULT 13 frame_dummy
6: 0000000000200dd0 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry
7: 0000000000000814 20 FUNC LOCAL DEFAULT 13 foo
8: 0000000000200dd8 0 NOTYPE LOCAL DEFAULT 18 __init_array_end
9: 0000000000200dd0 0 NOTYPE LOCAL DEFAULT 18 __init_array_start
10: 0000000000000238 0 SECTION LOCAL DEFAULT 1
11: 0000000000000254 0 SECTION LOCAL DEFAULT 2
12: 0000000000000274 0 SECTION LOCAL DEFAULT 3
13: 0000000000000298 0 SECTION LOCAL DEFAULT 4
14: 00000000000002d8 0 SECTION LOCAL DEFAULT 5
15: 0000000000000428 0 SECTION LOCAL DEFAULT 6
16: 00000000000004f2 0 SECTION LOCAL DEFAULT 7
17: 0000000000000510 0 SECTION LOCAL DEFAULT 8
18: 0000000000000530 0 SECTION LOCAL DEFAULT 9
19: 0000000000000638 0 SECTION LOCAL DEFAULT 10
20: 0000000000000680 0 SECTION LOCAL DEFAULT 11
21: 00000000000006a0 0 SECTION LOCAL DEFAULT 12
22: 00000000000006e0 0 SECTION LOCAL DEFAULT 13
23: 00000000000008f4 0 SECTION LOCAL DEFAULT 14
24: 0000000000000900 0 SECTION LOCAL DEFAULT 15
25: 0000000000000904 0 SECTION LOCAL DEFAULT 16
26: 0000000000000948 0 SECTION LOCAL DEFAULT 17
27: 0000000000200dd0 0 SECTION LOCAL DEFAULT 18
28: 0000000000200dd8 0 SECTION LOCAL DEFAULT 19
29: 0000000000200de0 0 SECTION LOCAL DEFAULT 20
30: 0000000000200de8 0 SECTION LOCAL DEFAULT 21
31: 0000000000200df0 0 SECTION LOCAL DEFAULT 22
32: 0000000000200fc0 0 SECTION LOCAL DEFAULT 23
33: 0000000000201000 0 SECTION LOCAL DEFAULT 24
34: 0000000000201030 0 SECTION LOCAL DEFAULT 25
35: 000000000020103c 0 SECTION LOCAL DEFAULT 26
36: 0000000000000828 44 FUNC GLOBAL DEFAULT 13 bar
37: 00000000000008f4 0 FUNC GLOBAL DEFAULT 14 _fini
38: 00000000000006e0 0 FUNC GLOBAL DEFAULT 13 _start
39: 0000000000000680 0 FUNC GLOBAL DEFAULT 11 _init
EOF
# Display all symbol tables.
cat testfile.dynsym.in testfile.symtab.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebaztab
# Display just .dynsym
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf \
--symbols=.dynsym testfilebaztab
# Display just .symtab
cat testfile.symtab.in \
| testrun_compare ${abs_top_builddir}/src/readelf \
--symbols=.symtab testfilebaztab
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdbg
cat testfile.symtab.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdbg.debug
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazdyn
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazmdb
cat testfile.minsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebazmdb
cat testfile.dynsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf -s testfilebazmin
cat testfile.minsym.in \
| testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebazmin
testrun_compare ${abs_top_builddir}/src/readelf -s testfilebasmin <<EOF
EOF
testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebasmin <<\EOF
Symbol table [ 6] '.symtab' contains 9 entries:
6 local symbols String table: [ 7] '.strtab'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 0000000000400168 18 FUNC LOCAL DEFAULT 2 foo
2: 0000000000400120 0 SECTION LOCAL DEFAULT 1
3: 0000000000400144 0 SECTION LOCAL DEFAULT 2
4: 00000000004001c0 0 SECTION LOCAL DEFAULT 3
5: 0000000000600258 0 SECTION LOCAL DEFAULT 4
6: 00000000004001a8 21 FUNC GLOBAL DEFAULT 2 _start
7: 0000000000400144 33 FUNC GLOBAL DEFAULT 2 main
8: 000000000040017a 44 FUNC GLOBAL DEFAULT 2 bar
EOF
testrun_compare ${abs_top_builddir}/src/readelf -s testfilebaxmin <<EOF
Symbol table [ 5] '.dynsym' contains 3 entries:
1 local symbol String table: [ 6] '.dynstr'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF __libc_start_main@GLIBC_2.2.5 (2)
2: 0000000000000000 0 NOTYPE WEAK DEFAULT UNDEF __gmon_start__
EOF
testrun_compare ${abs_top_builddir}/src/readelf --elf-section -s testfilebaxmin <<\EOF
Symbol table [27] '.symtab' contains 42 entries:
35 local symbols String table: [28] '.strtab'
Num: Value Size Type Bind Vis Ndx Name
0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 0000000000400430 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones
2: 0000000000400460 0 FUNC LOCAL DEFAULT 13 register_tm_clones
3: 00000000004004a0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux
4: 0000000000600e18 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry
5: 00000000004004c0 0 FUNC LOCAL DEFAULT 13 frame_dummy
6: 0000000000600e10 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry
7: 00000000004004f0 20 FUNC LOCAL DEFAULT 13 foo
8: 0000000000600e18 0 NOTYPE LOCAL DEFAULT 18 __init_array_end
9: 0000000000600e10 0 NOTYPE LOCAL DEFAULT 18 __init_array_start
10: 0000000000400238 0 SECTION LOCAL DEFAULT 1
11: 0000000000400254 0 SECTION LOCAL DEFAULT 2
12: 0000000000400274 0 SECTION LOCAL DEFAULT 3
13: 0000000000400298 0 SECTION LOCAL DEFAULT 4
14: 00000000004002b8 0 SECTION LOCAL DEFAULT 5
15: 0000000000400300 0 SECTION LOCAL DEFAULT 6
16: 0000000000400338 0 SECTION LOCAL DEFAULT 7
17: 0000000000400340 0 SECTION LOCAL DEFAULT 8
18: 0000000000400360 0 SECTION LOCAL DEFAULT 9
19: 0000000000400378 0 SECTION LOCAL DEFAULT 10
20: 00000000004003a8 0 SECTION LOCAL DEFAULT 11
21: 00000000004003d0 0 SECTION LOCAL DEFAULT 12
22: 0000000000400400 0 SECTION LOCAL DEFAULT 13
23: 00000000004005c4 0 SECTION LOCAL DEFAULT 14
24: 00000000004005d0 0 SECTION LOCAL DEFAULT 15
25: 00000000004005e0 0 SECTION LOCAL DEFAULT 16
26: 0000000000400628 0 SECTION LOCAL DEFAULT 17
27: 0000000000600e10 0 SECTION LOCAL DEFAULT 18
28: 0000000000600e18 0 SECTION LOCAL DEFAULT 19
29: 0000000000600e20 0 SECTION LOCAL DEFAULT 20
30: 0000000000600e28 0 SECTION LOCAL DEFAULT 21
31: 0000000000600ff8 0 SECTION LOCAL DEFAULT 22
32: 0000000000601000 0 SECTION LOCAL DEFAULT 23
33: 0000000000601028 0 SECTION LOCAL DEFAULT 24
34: 0000000000601034 0 SECTION LOCAL DEFAULT 25
35: 00000000004005c0 2 FUNC GLOBAL DEFAULT 13 __libc_csu_fini
36: 0000000000400504 40 FUNC GLOBAL DEFAULT 13 bar
37: 00000000004005c4 0 FUNC GLOBAL DEFAULT 14 _fini
38: 0000000000400550 101 FUNC GLOBAL DEFAULT 13 __libc_csu_init
39: 0000000000400400 0 FUNC GLOBAL DEFAULT 13 _start
40: 000000000040052c 35 FUNC GLOBAL DEFAULT 13 main
41: 00000000004003a8 0 FUNC GLOBAL DEFAULT 11 _init
EOF
exit 0
|