1*7304104dSAndroid Build Coastguard Worker#! /bin/sh 2*7304104dSAndroid Build Coastguard Worker# Copyright (C) 2014 Red Hat, Inc. 3*7304104dSAndroid Build Coastguard Worker# This file is part of elfutils. 4*7304104dSAndroid Build Coastguard Worker# 5*7304104dSAndroid Build Coastguard Worker# This file is free software; you can redistribute it and/or modify 6*7304104dSAndroid Build Coastguard Worker# it under the terms of the GNU General Public License as published by 7*7304104dSAndroid Build Coastguard Worker# the Free Software Foundation; either version 3 of the License, or 8*7304104dSAndroid Build Coastguard Worker# (at your option) any later version. 9*7304104dSAndroid Build Coastguard Worker# 10*7304104dSAndroid Build Coastguard Worker# elfutils is distributed in the hope that it will be useful, but 11*7304104dSAndroid Build Coastguard Worker# WITHOUT ANY WARRANTY; without even the implied warranty of 12*7304104dSAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*7304104dSAndroid Build Coastguard Worker# GNU General Public License for more details. 14*7304104dSAndroid Build Coastguard Worker# 15*7304104dSAndroid Build Coastguard Worker# You should have received a copy of the GNU General Public License 16*7304104dSAndroid Build Coastguard Worker# along with this program. If not, see <http://www.gnu.org/licenses/>. 17*7304104dSAndroid Build Coastguard Worker 18*7304104dSAndroid Build Coastguard Worker. $srcdir/test-subr.sh 19*7304104dSAndroid Build Coastguard Worker 20*7304104dSAndroid Build Coastguard Worker# // g++ x.cpp -g -fPIC -olibx.so -shared -O3 -fvisibility=hidden 21*7304104dSAndroid Build Coastguard Worker# 22*7304104dSAndroid Build Coastguard Worker# void foobar() 23*7304104dSAndroid Build Coastguard Worker# { 24*7304104dSAndroid Build Coastguard Worker# __asm__ ( "nop" ::: ); 25*7304104dSAndroid Build Coastguard Worker# } 26*7304104dSAndroid Build Coastguard Worker# 27*7304104dSAndroid Build Coastguard Worker# void foo() 28*7304104dSAndroid Build Coastguard Worker# { 29*7304104dSAndroid Build Coastguard Worker# { 30*7304104dSAndroid Build Coastguard Worker# void (*bar) () = foobar; 31*7304104dSAndroid Build Coastguard Worker# bar(); 32*7304104dSAndroid Build Coastguard Worker# } 33*7304104dSAndroid Build Coastguard Worker# } 34*7304104dSAndroid Build Coastguard Worker 35*7304104dSAndroid Build Coastguard Workertestfiles testfile-lex-inlines 36*7304104dSAndroid Build Coastguard Worker 37*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000680 <<\EOF 38*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 39*7304104dSAndroid Build Coastguard WorkerEOF 40*7304104dSAndroid Build Coastguard Worker 41*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000681 <<\EOF 42*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 43*7304104dSAndroid Build Coastguard WorkerEOF 44*7304104dSAndroid Build Coastguard Worker 45*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000690 <<\EOF 46*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 47*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:12 48*7304104dSAndroid Build Coastguard WorkerEOF 49*7304104dSAndroid Build Coastguard Worker 50*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000691 <<\EOF 51*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 52*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:12 53*7304104dSAndroid Build Coastguard WorkerEOF 54*7304104dSAndroid Build Coastguard Worker 55*7304104dSAndroid Build Coastguard Worker# All together now (plus function names). 56*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/addr2line -f -i -e testfile-lex-inlines 0x0000000000000680 0x0000000000000681 0x0000000000000690 0x0000000000000691 <<\EOF 57*7304104dSAndroid Build Coastguard Worker_Z6foobarv 58*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 59*7304104dSAndroid Build Coastguard Worker_Z6foobarv 60*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 61*7304104dSAndroid Build Coastguard Workerfoobar inlined at /tmp/x.cpp:12 in _Z3foov 62*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 63*7304104dSAndroid Build Coastguard Worker_Z3foov 64*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:12 65*7304104dSAndroid Build Coastguard Workerfoobar inlined at /tmp/x.cpp:12 in _Z3foov 66*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:5 67*7304104dSAndroid Build Coastguard Worker_Z3foov 68*7304104dSAndroid Build Coastguard Worker/tmp/x.cpp:12 69*7304104dSAndroid Build Coastguard WorkerEOF 70*7304104dSAndroid Build Coastguard Worker 71*7304104dSAndroid Build Coastguard Workerexit 0 72