stacktrace.sh
This commit is contained in:
parent
7e90a31914
commit
13cf75165a
19
shell/stacktrace.sh
Normal file
19
shell/stacktrace.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# https://gist.github.com/anthonyaxenov/925e2db217730a49f20600520b748039
|
||||||
|
# Original: https://gist.github.com/akostadinov/33bb2606afe1b334169dfbf202991d36
|
||||||
|
# The difference is that this func outputs stacktrace in reverse order (from top level to lower ones)
|
||||||
|
function print_stacktrace () {
|
||||||
|
STACK=""
|
||||||
|
local i
|
||||||
|
local stack_size=${#FUNCNAME[@]}
|
||||||
|
echo "Stacktrace:"
|
||||||
|
# skip this function and "MAIN non_file_source:0"
|
||||||
|
for (( i=$stack_size-1; i>=1; i-- )); do
|
||||||
|
local func="${FUNCNAME[$i]}"
|
||||||
|
[ x$func = x ] && func=MAIN
|
||||||
|
local linen="${BASH_LINENO[$(( i - 1 ))]}"
|
||||||
|
local src="${BASH_SOURCE[$i]}"
|
||||||
|
[ x"$src" = x ] && src=non_file_source
|
||||||
|
echo -e "\n at $func $src:$linen"
|
||||||
|
done
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user