1 #! /bin/sh 2 # Copyright (C) 2007, 2008 Red Hat, Inc. 3 # This file is part of elfutils. 4 # 5 # This file is free software; you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation; either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # elfutils is distributed in the hope that it will be useful, but 11 # WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 . $srcdir/test-subr.sh 19 20 testfiles testfile34 testfile38 testfile41 testfile49 21 22 testrun_compare ${abs_top_builddir}/src/addr2line -f -e testfile34 \ 23 0x08048074 0x08048075 0x08048076 \ 24 0x08049078 0x08048080 0x08049080 <<\EOF 25 foo 26 ??:0 27 bar 28 ??:0 29 _etext 30 ??:0 31 data1 32 ??:0 33 ?? 34 ??:0 35 _end 36 ??:0 37 EOF 38 39 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile38 0x02 0x10a 0x211 0x31a <<\EOF 40 t1_global_outer+0x2 41 ??:0 42 t2_global_symbol+0x2 43 ??:0 44 t3_global_after_0+0x1 45 ??:0 46 (.text)+0x31a 47 ??:0 48 EOF 49 50 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile41 0x1 0x104 <<\EOF 51 small_global_at_large_global+0x1 52 ??:0 53 small_global_first_at_large_global+0x1 54 ??:0 55 EOF 56 57 testfiles testfile12 testfile14 58 tempfiles testmaps 59 60 cat > testmaps <<EOF 61 00400000-00401000 r-xp 00000000 fd:01 4006812 `pwd`/testfile14 62 00500000-00501000 rw-p 00000000 fd:01 4006812 `pwd`/testfile14 63 01000000-01001000 r-xp 00000000 fd:01 1234567 `pwd`/testfile12 64 01100000-01011000 rw-p 00000000 fd:01 1234567 `pwd`/testfile12 65 2aaaaaaab000-2aaaaaaad000 rw-p 2aaaaaaab000 00:00 0 66 2aaaaaae2000-2aaaaaae3000 rw-p 2aaaaaae2000 00:00 0 67 7fff61068000-7fff6107d000 rw-p 7ffffffea000 00:00 0 [stack] 68 7fff611fe000-7fff61200000 r-xp 7fff611fe000 00:00 0 [vdso] 69 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] 70 EOF 71 72 testrun_compare ${abs_top_builddir}/src/addr2line -S -M testmaps 0x40047c 0x10009db <<\EOF 73 caller+0x14 74 /home/drepper/local/elfutils-build/20050425/v.c:11 75 foo+0xb 76 /home/drepper/local/elfutils-build/20030710/u.c:5 77 EOF 78 79 # .section .text 80 # nop #0 81 #sizeless_foo: 82 # nop #1 83 # nop #2 84 #sized_bar: 85 # nop #3 86 # nop #4 87 #sizeless_baz: 88 # nop #5 89 # nop #6 90 # .size sized_bar, . - sized_bar 91 # nop #7 92 # nop #8 93 #sizeless_x: 94 # nop #9 95 # .org 0x100 96 # nop #0 97 # .globl global_outer 98 #global_outer: 99 # nop #1 100 # nop #2 101 # .globl global_in_global 102 #global_in_global: 103 # nop #3 104 # nop #4 105 # .size global_in_global, . - global_in_global 106 #local_in_global: 107 # nop #5 108 # nop #6 109 # .size local_in_global, . - local_in_global 110 # nop #7 111 # nop #8 112 #.Lsizeless1: 113 # nop #9 114 # nop #10 115 # .size global_outer, . - global_outer 116 # nop #11 117 # .org 0x200 118 # nop #0 119 #local_outer: 120 # nop #1 121 # nop #2 122 # .globl global_in_local 123 #global_in_local: 124 # nop #3 125 # nop #4 126 # .size global_in_local, . - global_in_local 127 #local_in_local: 128 # nop #5 129 # nop #6 130 # .size local_in_local, . - local_in_local 131 # nop #7 132 # nop #8 133 #.Lsizeless2: 134 # nop #9 135 # nop #10 136 # .size local_outer, . - local_outer 137 # nop #11 138 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile49 \ 139 0 1 2 3 4 5 6 7 8 9 \ 140 0x100 0x101 0x102 0x103 0x104 0x105 \ 141 0x106 0x107 0x108 0x109 0x10a 0x10b \ 142 0x200 0x201 0x202 0x203 0x204 0x205 \ 143 0x206 0x207 0x208 0x209 0x20a 0x20b <<\EOF 144 (.text)+0 145 ??:0 146 sizeless_foo 147 ??:0 148 sizeless_foo+0x1 149 ??:0 150 sized_bar 151 ??:0 152 sized_bar+0x1 153 ??:0 154 sized_bar+0x2 155 ??:0 156 sized_bar+0x3 157 ??:0 158 (.text)+0x7 159 ??:0 160 (.text)+0x8 161 ??:0 162 sizeless_x 163 ??:0 164 sizeless_x+0xf7 165 ??:0 166 global_outer 167 ??:0 168 global_outer+0x1 169 ??:0 170 global_in_global 171 ??:0 172 global_in_global+0x1 173 ??:0 174 global_outer+0x4 175 ??:0 176 global_outer+0x5 177 ??:0 178 global_outer+0x6 179 ??:0 180 global_outer+0x7 181 ??:0 182 global_outer+0x8 183 ??:0 184 global_outer+0x9 185 ??:0 186 (.text)+0x10b 187 ??:0 188 (.text)+0x200 189 ??:0 190 local_outer 191 ??:0 192 local_outer+0x1 193 ??:0 194 global_in_local 195 ??:0 196 global_in_local+0x1 197 ??:0 198 local_in_local 199 ??:0 200 local_in_local+0x1 201 ??:0 202 local_outer+0x6 203 ??:0 204 local_outer+0x7 205 ??:0 206 local_outer+0x8 207 ??:0 208 local_outer+0x9 209 ??:0 210 (.text)+0x20b 211 ??:0 212 EOF 213 214 # .macro global label size 215 #\label: .globl \label 216 # .size \label, \size 217 # .endm 218 # .macro weak label size 219 #\label: .weak \label 220 # .size \label, \size 221 # .endm 222 # .macro local label size 223 #\label: .size \label, \size 224 # .endm 225 # .macro offset val 226 # .ifne (. - _start) - \val 227 # .err 228 # .endif 229 # .byte \val 230 # .endm 231 # 232 #_start: 233 # offset 0 234 # 235 # local glocal, 1 236 # weak gweak, 1 237 # global gglobal1, 2 238 # global gglobal2, 1 239 # global gglobal3, 1 240 # offset 1 241 # /* Symbols end here. */ 242 # offset 2 243 # /* gglobal1 ends here. */ 244 # offset 3 245 # 246 # local g0local, 0 247 # weak g0weak, 0 248 # global g0global1, 0 249 # global g0global2, 0 250 # offset 4 251 # 252 # local wlocal, 1 253 # weak wweak1, 2 254 # weak wweak2, 1 255 # weak wweak3, 1 256 # offset 5 257 # /* Symbols end here. */ 258 # offset 6 259 # /* wweak1 ends here. */ 260 # offset 7 261 # 262 # local w0local, 0 263 # weak w0weak1, 0 264 # weak w0weak2, 0 265 # offset 8 266 # 267 # local llocal1, 2 268 # local llocal2, 1 269 # local llocal3, 1 270 # offset 9 271 # /* Symbols end here. */ 272 # offset 10 273 # /* llocal1 ends here. */ 274 # offset 11 275 # 276 # local l0local1, 0 277 # local l0local2, 0 278 # offset 12 279 testfiles testfile64 280 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile64 1 4 5 8 9 c <<\EOF 281 gglobal2 282 ??:0 283 g0global2 284 ??:0 285 wweak2 286 ??:0 287 w0weak2 288 ??:0 289 llocal2 290 ??:0 291 l0local2 292 ??:0 293 EOF 294 295 testfiles testfile65 296 testrun_compare ${abs_top_builddir}/src/addr2line -S --core=testfile65 0x7fff94bffa30 <<\EOF 297 __vdso_time 298 ??:0 299 EOF 300 301 # .section ".text" 302 # .globl _start 303 # .section ".opd","aw" 304 #_start: .quad .L._start,.TOC.@tocbase 305 # .previous 306 # .type _start, @function 307 #.L._start: 308 # .byte 0x7d, 0x82, 0x10, 0x08 309 # .size _start,.-.L._start 310 testfiles testfile66 testfile66.core 311 testrun_compare ${abs_top_builddir}/src/addr2line -x -e testfile66 _start 0x2d8 0x2db 0x2dc 0x103d0 0x103d3 0x103d4<<EOF 312 _start (.text) 313 ??:0 314 _start (.text) 315 ??:0 316 _start+0x3 (.text) 317 ??:0 318 ()+0x2dc 319 ??:0 320 _start (.opd) 321 ??:0 322 _start+0x3 (.opd) 323 ??:0 324 ()+0x103d4 325 ??:0 326 EOF 327 testrun_compare ${abs_top_builddir}/src/addr2line -x -e testfile66 --core=testfile66.core _start 0x461b02d8 0x461c03d0<<\EOF 328 _start (.text) 329 ??:0 330 _start (.text) 331 ??:0 332 _start (.opd) 333 ??:0 334 EOF 335 336 testfiles testfile69.core testfile69.so 337 testrun_compare ${abs_top_builddir}/src/addr2line --core=./testfile69.core -S 0x7f0bc6a33535 0x7f0bc6a33546 <<\EOF 338 libstatic+0x9 339 ??:0 340 libglobal+0x9 341 ??:0 342 EOF 343 344 testfiles testfile70.exec testfile70.core 345 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile70.exec --core=testfile70.core 0x7ff2cfe9b6b5 <<\EOF 346 main+0x9 347 ??:0 348 EOF 349 testrun_compare ${abs_top_builddir}/src/addr2line -S --core=testfile70.core -e testfile70.exec 0x7ff2cfe9b6b5 <<\EOF 350 main+0x9 351 ??:0 352 EOF 353 354 testfiles test-core-lib.so test-core.core test-core.exec 355 testrun_compare ${abs_top_builddir}/src/addr2line -S -e test-core.exec --core=test-core.core 0x7f67f2aaf619 <<\EOF 356 libfunc+0x9 357 ??:0 358 EOF 359 360 exit 0 361