103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes#! /bin/sh 203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# Copyright (C) 2013 Red Hat, Inc. 303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# This file is part of elfutils. 403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# This file is free software; you can redistribute it and/or modify 603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# it under the terms of the GNU General Public License as published by 703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# the Free Software Foundation; either version 3 of the License, or 803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# (at your option) any later version. 903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 1003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# elfutils is distributed in the hope that it will be useful, but 1103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# WITHOUT ANY WARRANTY; without even the implied warranty of 1203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# GNU General Public License for more details. 1403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 1503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# You should have received a copy of the GNU General Public License 1603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# along with this program. If not, see <http://www.gnu.org/licenses/>. 1703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 1803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes. $srcdir/test-subr.sh 1903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 2003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# // g++ x.cpp -g -fPIC -olibx.so -shared -O3 -fvisibility=hidden 2103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 2203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# void foobar() 2303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# { 2403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# __asm__ ( "nop" ::: ); 2503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# } 2603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 2703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# void fubar() 2803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# { 2903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# __asm__ ( "nop" ::: ); 3003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# } 3103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 3203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# void bar() 3303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# { 3403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# foobar(); 3503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# } 3603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 3703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# void baz() 3803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# { 3903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# fubar(); 4003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# } 4103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 4203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# void foo() 4303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# { 4403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# bar(); 4503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# baz(); 4603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# } 4703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# 4803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# void fu() 4903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# { 5003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# __asm__ ( "nop" ::: ); 5103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# fubar(); 5203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# foobar(); 5303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# } 5403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 5503333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestfiles testfile-inlines 5603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 5703333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005a0 <<\EOF 5803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 5903333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 6003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 6103333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005a1 <<\EOF 6203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:6 6303333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 6403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 6503333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005b0 <<\EOF 6603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 6703333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 6803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 6903333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005b1 <<\EOF 7003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:11 7103333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 7203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 7303333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005c0 <<\EOF 7403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 7503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:15 7603333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 7703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 7803333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005d0 <<\EOF 7903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 8003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:20 8103333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 8203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 8303333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005e0 <<\EOF 8403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 8503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:15 8603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:25 8703333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 8803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 8903333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005e1 <<\EOF 9003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 9103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:20 9203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:26 9303333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 9403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 9503333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005f1 <<\EOF 9603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 9703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:32 9803333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 9903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 10003333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-inlines 0x00000000000005f2 <<\EOF 10103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 10203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:33 10303333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 10403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 10503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes# All together now (plus function names). 10603333823c75a1c1887e923828113a1b0fd12020cElliott Hughestestrun_compare ${abs_top_builddir}/src/addr2line -f -i -e testfile-inlines 0x00000000000005a0 0x00000000000005a1 0x00000000000005b0 0x00000000000005b1 0x00000000000005c0 0x00000000000005d0 0x00000000000005e0 0x00000000000005e1 0x00000000000005f0 0x00000000000005f1 0x00000000000005f2 <<\EOF 10703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfoobar 10803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 10903333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfoobar 11003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:6 11103333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfubar 11203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 11303333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfubar 11403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:11 11503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfoobar inlined at /tmp/x.cpp:15 in _Z3barv 11603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 11703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesbar 11803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:15 11903333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfubar inlined at /tmp/x.cpp:20 in _Z3bazv 12003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 12103333823c75a1c1887e923828113a1b0fd12020cElliott Hughesbaz 12203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:20 12303333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfoobar inlined at /tmp/x.cpp:15 in _Z3foov 12403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 12503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesbar 12603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:15 12703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes_Z3foov 12803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:25 12903333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfubar inlined at /tmp/x.cpp:20 in _Z3foov 13003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 13103333823c75a1c1887e923828113a1b0fd12020cElliott Hughesbaz 13203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:20 13303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes_Z3foov 13403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:26 13503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes_Z2fuv 13603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:31 13703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfubar inlined at /tmp/x.cpp:32 in _Z2fuv 13803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:10 13903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes_Z2fuv 14003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:32 14103333823c75a1c1887e923828113a1b0fd12020cElliott Hughesfoobar inlined at /tmp/x.cpp:33 in _Z2fuv 14203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:5 14303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes_Z2fuv 14403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes/tmp/x.cpp:33 14503333823c75a1c1887e923828113a1b0fd12020cElliott HughesEOF 14603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 14703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesexit 0 148