| ... | ... |
@@ -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 |
} |