From ce40418daeeeabc86ec21b31b5fa48ccf9ebdfa8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 25 Nov 2007 08:15:32 +0000 Subject: The qa_call() function and anything before it are portage internals that the user will not be interested in. Therefore, the stack trace should only show calls that come after qa_call(). svn path=/main/trunk/; revision=8653 --- bin/isolated-functions.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'bin') diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index 673f1ad85..d24e42e2f 100755 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -20,8 +20,18 @@ dump_trace() { declare -i strip=${1:-1} local filespacing=$2 linespacing=$3 + # The qa_call() function and anything before it are portage internals + # that the user will not be interested in. Therefore, the stack trace + # should only show calls that come after qa_call(). + (( n = ${#FUNCNAME[@]} - 1 )) + while (( n > 0 )) ; do + [ "${FUNCNAME[${n}]}" == "qa_call" ] && break + (( n-- )) + done + (( n == 0 )) && (( n = ${#FUNCNAME[@]} - 1 )) + eerror "Call stack:" - for (( n = ${#FUNCNAME[@]} - 1, p = ${#BASH_ARGV[@]} ; n > ${strip} ; n-- )) ; do + for (( p = ${#BASH_ARGV[@]} ; n > ${strip} ; n-- )) ; do funcname=${FUNCNAME[${n} - 1]} sourcefile=$(basename ${BASH_SOURCE[${n}]}) lineno=${BASH_LINENO[${n} - 1]} -- cgit v1.2.3-1-g7c22