#! /bin/sh # Copyright (C) 2007, 2008 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 testfiles testfile34 testfile38 testfile41 testfile49 testrun_compare ${abs_top_builddir}/src/addr2line -f -e testfile34 \ 0x08048074 0x08048075 0x08048076 \ 0x08049078 0x08048080 0x08049080 <<\EOF foo ??:0 bar ??:0 _etext ??:0 data1 ??:0 ?? ??:0 _end ??:0 EOF testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile38 0x02 0x10a 0x211 0x31a <<\EOF t1_global_outer+0x2 ??:0 t2_global_symbol+0x2 ??:0 t3_global_after_0+0x1 ??:0 (.text)+0x31a ??:0 EOF testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile41 0x1 0x104 <<\EOF small_global_at_large_global+0x1 ??:0 small_global_first_at_large_global+0x1 ??:0 EOF testfiles testfile12 testfile14 tempfiles testmaps cat > testmaps <<EOF 00400000-00401000 r-xp 00000000 fd:01 4006812 `pwd`/testfile14 00500000-00501000 rw-p 00000000 fd:01 4006812 `pwd`/testfile14 01000000-01001000 r-xp 00000000 fd:01 1234567 `pwd`/testfile12 01100000-01011000 rw-p 00000000 fd:01 1234567 `pwd`/testfile12 2aaaaaaab000-2aaaaaaad000 rw-p 2aaaaaaab000 00:00 0 2aaaaaae2000-2aaaaaae3000 rw-p 2aaaaaae2000 00:00 0 7fff61068000-7fff6107d000 rw-p 7ffffffea000 00:00 0 [stack] 7fff611fe000-7fff61200000 r-xp 7fff611fe000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] EOF testrun_compare ${abs_top_builddir}/src/addr2line -S -M testmaps 0x40047c 0x10009db <<\EOF caller+0x14 /home/drepper/local/elfutils-build/20050425/v.c:11 foo+0xb /home/drepper/local/elfutils-build/20030710/u.c:5 EOF # .section .text # nop #0 #sizeless_foo: # nop #1 # nop #2 #sized_bar: # nop #3 # nop #4 #sizeless_baz: # nop #5 # nop #6 # .size sized_bar, . - sized_bar # nop #7 # nop #8 #sizeless_x: # nop #9 # .org 0x100 # nop #0 # .globl global_outer #global_outer: # nop #1 # nop #2 # .globl global_in_global #global_in_global: # nop #3 # nop #4 # .size global_in_global, . - global_in_global #local_in_global: # nop #5 # nop #6 # .size local_in_global, . - local_in_global # nop #7 # nop #8 #.Lsizeless1: # nop #9 # nop #10 # .size global_outer, . - global_outer # nop #11 # .org 0x200 # nop #0 #local_outer: # nop #1 # nop #2 # .globl global_in_local #global_in_local: # nop #3 # nop #4 # .size global_in_local, . - global_in_local #local_in_local: # nop #5 # nop #6 # .size local_in_local, . - local_in_local # nop #7 # nop #8 #.Lsizeless2: # nop #9 # nop #10 # .size local_outer, . - local_outer # nop #11 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile49 \ 0 1 2 3 4 5 6 7 8 9 \ 0x100 0x101 0x102 0x103 0x104 0x105 \ 0x106 0x107 0x108 0x109 0x10a 0x10b \ 0x200 0x201 0x202 0x203 0x204 0x205 \ 0x206 0x207 0x208 0x209 0x20a 0x20b <<\EOF (.text)+0 ??:0 sizeless_foo ??:0 sizeless_foo+0x1 ??:0 sized_bar ??:0 sized_bar+0x1 ??:0 sized_bar+0x2 ??:0 sized_bar+0x3 ??:0 (.text)+0x7 ??:0 (.text)+0x8 ??:0 sizeless_x ??:0 sizeless_x+0xf7 ??:0 global_outer ??:0 global_outer+0x1 ??:0 global_in_global ??:0 global_in_global+0x1 ??:0 global_outer+0x4 ??:0 global_outer+0x5 ??:0 global_outer+0x6 ??:0 global_outer+0x7 ??:0 global_outer+0x8 ??:0 global_outer+0x9 ??:0 (.text)+0x10b ??:0 (.text)+0x200 ??:0 local_outer ??:0 local_outer+0x1 ??:0 global_in_local ??:0 global_in_local+0x1 ??:0 local_in_local ??:0 local_in_local+0x1 ??:0 local_outer+0x6 ??:0 local_outer+0x7 ??:0 local_outer+0x8 ??:0 local_outer+0x9 ??:0 (.text)+0x20b ??:0 EOF # .macro global label size #\label: .globl \label # .size \label, \size # .endm # .macro weak label size #\label: .weak \label # .size \label, \size # .endm # .macro local label size #\label: .size \label, \size # .endm # .macro offset val # .ifne (. - _start) - \val # .err # .endif # .byte \val # .endm # #_start: # offset 0 # # local glocal, 1 # weak gweak, 1 # global gglobal1, 2 # global gglobal2, 1 # global gglobal3, 1 # offset 1 # /* Symbols end here. */ # offset 2 # /* gglobal1 ends here. */ # offset 3 # # local g0local, 0 # weak g0weak, 0 # global g0global1, 0 # global g0global2, 0 # offset 4 # # local wlocal, 1 # weak wweak1, 2 # weak wweak2, 1 # weak wweak3, 1 # offset 5 # /* Symbols end here. */ # offset 6 # /* wweak1 ends here. */ # offset 7 # # local w0local, 0 # weak w0weak1, 0 # weak w0weak2, 0 # offset 8 # # local llocal1, 2 # local llocal2, 1 # local llocal3, 1 # offset 9 # /* Symbols end here. */ # offset 10 # /* llocal1 ends here. */ # offset 11 # # local l0local1, 0 # local l0local2, 0 # offset 12 testfiles testfile64 testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile64 1 4 5 8 9 c <<\EOF gglobal2 ??:0 g0global2 ??:0 wweak2 ??:0 w0weak2 ??:0 llocal2 ??:0 l0local2 ??:0 EOF testfiles testfile65 testrun_compare ${abs_top_builddir}/src/addr2line -S --core=testfile65 0x7fff94bffa30 <<\EOF __vdso_time ??:0 EOF # .section ".text" # .globl _start # .section ".opd","aw" #_start: .quad .L._start,.TOC.@tocbase # .previous # .type _start, @function #.L._start: # .byte 0x7d, 0x82, 0x10, 0x08 # .size _start,.-.L._start testfiles testfile66 testfile66.core testrun_compare ${abs_top_builddir}/src/addr2line -x -e testfile66 _start 0x2d8 0x2db 0x2dc 0x103d0 0x103d3 0x103d4<<EOF _start (.text) ??:0 _start (.text) ??:0 _start+0x3 (.text) ??:0 ()+0x2dc ??:0 _start (.opd) ??:0 _start+0x3 (.opd) ??:0 ()+0x103d4 ??:0 EOF testrun_compare ${abs_top_builddir}/src/addr2line -x -e testfile66 --core=testfile66.core _start 0x461b02d8 0x461c03d0<<\EOF _start (.text) ??:0 _start (.text) ??:0 _start (.opd) ??:0 EOF testfiles testfile69.core testfile69.so testrun_compare ${abs_top_builddir}/src/addr2line --core=./testfile69.core -S 0x7f0bc6a33535 0x7f0bc6a33546 <<\EOF libstatic+0x9 ??:0 libglobal+0x9 ??:0 EOF testfiles testfile70.exec testfile70.core testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile70.exec --core=testfile70.core 0x7ff2cfe9b6b5 <<\EOF main+0x9 ??:0 EOF testrun_compare ${abs_top_builddir}/src/addr2line -S --core=testfile70.core -e testfile70.exec 0x7ff2cfe9b6b5 <<\EOF main+0x9 ??:0 EOF testfiles test-core-lib.so test-core.core test-core.exec testrun_compare ${abs_top_builddir}/src/addr2line -S -e test-core.exec --core=test-core.core 0x7f67f2aaf619 <<\EOF libfunc+0x9 ??:0 EOF exit 0