blob: c440bf7384a43de4bccbaf79e424af90adcab403 (
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
|
#! /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 dwfl_module_addrsym and dwfl_module_getsym.
# See run-readelf-s.sh for how to generate test binaries.
testfiles testfilebaztab
testfiles testfilebazdbg testfilebazdbg.debug
testfiles testfilebazdyn
testfiles testfilebazmdb
testfiles testfilebazmin
testfiles testfilebasmin
tempfiles testfile.dynsym.in testfile.symtab.in testfile.minsym.in dwflsyms.out
cat > testfile.symtab.in <<\EOF
0: NOTYPE LOCAL (0) 0
1: SECTION LOCAL (0) 0x238
2: SECTION LOCAL (0) 0x254
3: SECTION LOCAL (0) 0x274
4: SECTION LOCAL (0) 0x298
5: SECTION LOCAL (0) 0x2d8
6: SECTION LOCAL (0) 0x428
7: SECTION LOCAL (0) 0x4f2
8: SECTION LOCAL (0) 0x510
9: SECTION LOCAL (0) 0x530
10: SECTION LOCAL (0) 0x638
11: SECTION LOCAL (0) 0x680
12: SECTION LOCAL (0) 0x6a0
13: SECTION LOCAL (0) 0x6e0
14: SECTION LOCAL (0) 0x8f4
15: SECTION LOCAL (0) 0x900
16: SECTION LOCAL (0) 0x904
17: SECTION LOCAL (0) 0x948
18: SECTION LOCAL (0) 0x200dd0
19: SECTION LOCAL (0) 0x200dd8
20: SECTION LOCAL (0) 0x200de0
21: SECTION LOCAL (0) 0x200de8
22: SECTION LOCAL (0) 0x200df0
23: SECTION LOCAL (0) 0x200fc0
24: SECTION LOCAL (0) 0x201000
25: SECTION LOCAL (0) 0x201030
26: SECTION LOCAL (0) 0x20103c
27: SECTION LOCAL (0) 0
28: SECTION LOCAL (0) 0
29: SECTION LOCAL (0) 0
30: SECTION LOCAL (0) 0
31: SECTION LOCAL (0) 0
32: SECTION LOCAL (0) 0
33: FILE LOCAL crtstuff.c (0) 0
34: OBJECT LOCAL __JCR_LIST__ (0) 0x200de0
35: FUNC LOCAL deregister_tm_clones (0) 0x710
36: FUNC LOCAL register_tm_clones (0) 0x740
37: FUNC LOCAL __do_global_dtors_aux (0) 0x780
38: OBJECT LOCAL completed.6137 (1) 0x20103c
39: OBJECT LOCAL __do_global_dtors_aux_fini_array_entry (0) 0x200dd8
40: FUNC LOCAL frame_dummy (0) 0x7c0
41: OBJECT LOCAL __frame_dummy_init_array_entry (0) 0x200dd0
42: FILE LOCAL foo.c (0) 0
43: FILE LOCAL bar.c (0) 0
44: OBJECT LOCAL b1 (4) 0x201034
45: FUNC LOCAL foo (20) 0x814
46: FILE LOCAL crtstuff.c (0) 0
47: OBJECT LOCAL __FRAME_END__ (0) 0xa58
48: OBJECT LOCAL __JCR_END__ (0) 0x200de0
49: FILE LOCAL (0) 0
50: NOTYPE LOCAL __init_array_end (0) 0x200dd8
51: OBJECT LOCAL _DYNAMIC (0) 0x200df0
52: NOTYPE LOCAL __init_array_start (0) 0x200dd0
53: OBJECT LOCAL _GLOBAL_OFFSET_TABLE_ (0) 0x201000
54: FUNC GLOBAL __libc_csu_fini (2) 0x8f0
55: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
56: NOTYPE WEAK data_start (0) 0x201030
57: NOTYPE GLOBAL _edata (0) 0x20103c
58: FUNC GLOBAL bar (44) 0x828
59: FUNC GLOBAL _fini (0) 0x8f4
60: FUNC GLOBAL __libc_start_main@@GLIBC_2.2.5 (0) 0
61: NOTYPE GLOBAL __data_start (0) 0x201030
62: NOTYPE WEAK __gmon_start__ (0) 0
63: OBJECT GLOBAL __dso_handle (0) 0x200de8
64: OBJECT GLOBAL _IO_stdin_used (4) 0x900
65: OBJECT GLOBAL b2 (4) 0x201038
66: FUNC GLOBAL __libc_csu_init (137) 0x860
67: NOTYPE GLOBAL _end (0) 0x201040
68: FUNC GLOBAL _start (0) 0x6e0
69: NOTYPE GLOBAL __bss_start (0) 0x20103c
70: FUNC GLOBAL main (35) 0x7f0
71: NOTYPE WEAK _Jv_RegisterClasses (0) 0
72: OBJECT GLOBAL __TMC_END__ (0) 0x201040
73: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
74: FUNC WEAK __cxa_finalize@@GLIBC_2.2.5 (0) 0
75: FUNC GLOBAL _init (0) 0x680
EOF
cat > testfile.dynsym.in <<\EOF
0: NOTYPE LOCAL (0) 0
1: SECTION LOCAL (0) 0x238
2: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
3: FUNC GLOBAL __libc_start_main (0) 0
4: NOTYPE WEAK __gmon_start__ (0) 0
5: NOTYPE WEAK _Jv_RegisterClasses (0) 0
6: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
7: FUNC WEAK __cxa_finalize (0) 0
8: NOTYPE GLOBAL _edata (0) 0x20103c
9: NOTYPE GLOBAL _end (0) 0x201040
10: FUNC GLOBAL __libc_csu_init (137) 0x860
11: NOTYPE GLOBAL __bss_start (0) 0x20103c
12: FUNC GLOBAL main (35) 0x7f0
13: FUNC GLOBAL __libc_csu_fini (2) 0x8f0
EOF
cat > testfile.minsym.in <<\EOF
0: NOTYPE LOCAL (0) 0
1: SECTION LOCAL (0) 0x238
2: FUNC LOCAL call_gmon_start (0) 0x4003bc
3: FUNC LOCAL __do_global_dtors_aux (0) 0x4003e0
4: FUNC LOCAL frame_dummy (0) 0x400450
5: FUNC LOCAL __do_global_ctors_aux (0) 0x400580
6: FUNC LOCAL foo (18) 0x400498
7: SECTION LOCAL (0) 0x400200
8: SECTION LOCAL (0) 0x40021c
9: SECTION LOCAL (0) 0x40023c
10: SECTION LOCAL (0) 0x400260
11: SECTION LOCAL (0) 0x400280
12: SECTION LOCAL (0) 0x4002c8
13: SECTION LOCAL (0) 0x400300
14: SECTION LOCAL (0) 0x400308
15: SECTION LOCAL (0) 0x400328
16: SECTION LOCAL (0) 0x400340
17: SECTION LOCAL (0) 0x400358
18: SECTION LOCAL (0) 0x400370
19: SECTION LOCAL (0) 0x400390
20: SECTION LOCAL (0) 0x4005b8
21: SECTION LOCAL (0) 0x4005c8
22: SECTION LOCAL (0) 0x4005d8
23: SECTION LOCAL (0) 0x400610
24: SECTION LOCAL (0) 0x6006d0
25: SECTION LOCAL (0) 0x6006e0
26: SECTION LOCAL (0) 0x6006f0
27: SECTION LOCAL (0) 0x6006f8
28: SECTION LOCAL (0) 0x600888
29: SECTION LOCAL (0) 0x600890
30: SECTION LOCAL (0) 0x6008b0
31: SECTION LOCAL (0) 0x6008c0
32: NOTYPE WEAK _ITM_deregisterTMCloneTable (0) 0
33: FUNC GLOBAL __libc_start_main (0) 0
34: NOTYPE WEAK __gmon_start__ (0) 0
35: NOTYPE WEAK _Jv_RegisterClasses (0) 0
36: NOTYPE WEAK _ITM_registerTMCloneTable (0) 0
37: FUNC WEAK __cxa_finalize (0) 0
38: NOTYPE GLOBAL _edata (0) 0x20103c
39: NOTYPE GLOBAL _end (0) 0x201040
40: FUNC GLOBAL __libc_csu_init (137) 0x860
41: NOTYPE GLOBAL __bss_start (0) 0x20103c
42: FUNC GLOBAL main (35) 0x7f0
43: FUNC GLOBAL __libc_csu_fini (2) 0x8f0
44: FUNC GLOBAL _start (0) 0x400390
45: FUNC GLOBAL bar (44) 0x4004aa
46: FUNC GLOBAL _fini (0) 0x4005b8
47: FUNC GLOBAL _init (0) 0x400358
EOF
cat testfile.symtab.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebaztab
cat testfile.symtab.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdbg
cat testfile.dynsym.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazdyn
cat testfile.symtab.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmdb
cat testfile.minsym.in \
| testrun_compare ${abs_builddir}/dwflsyms -e testfilebazmin
testrun_compare ${abs_builddir}/dwflsyms -e testfilebasmin <<\EOF
0: NOTYPE LOCAL (0) 0
1: FUNC LOCAL foo (18) 0x400168
2: SECTION LOCAL (0) 0x400120
3: SECTION LOCAL (0) 0x400144
4: SECTION LOCAL (0) 0x4001c0
5: SECTION LOCAL (0) 0x600258
6: FUNC GLOBAL _start (21) 0x4001a8
7: FUNC GLOBAL main (33) 0x400144
8: FUNC GLOBAL bar (44) 0x40017a
EOF
exit 0
|