Browse code

Merge "Add call trace in error message"

Jenkins authored on 2013/08/09 00:45:49
Showing 1 changed files
... ...
@@ -76,6 +76,19 @@ function cp_it {
76 76
 }
77 77
 
78 78
 
79
+# Prints backtrace info
80
+# filename:lineno:function
81
+function backtrace {
82
+    local level=$1
83
+    local deep=$((${#BASH_SOURCE[@]} - 1))
84
+    echo "[Call Trace]"
85
+    while [ $level -le $deep ]; do
86
+        echo "${BASH_SOURCE[$deep]}:${BASH_LINENO[$deep-1]}:${FUNCNAME[$deep-1]}"
87
+        deep=$((deep - 1))
88
+    done
89
+}
90
+
91
+
79 92
 # Prints line number and "message" then exits
80 93
 # die $LINENO "message"
81 94
 function die() {
... ...
@@ -85,6 +98,7 @@ function die() {
85 85
     if [ $exitcode == 0 ]; then
86 86
         exitcode=1
87 87
     fi
88
+    backtrace 2
88 89
     err $line "$*"
89 90
     exit $exitcode
90 91
 }