style: improve backtrace format (rust-like)
This commit is contained in:
+15
-1
@@ -16,7 +16,21 @@ std::backtrace() {
|
||||
std::eprintln $'\033[4m'"Backtrace:"
|
||||
|
||||
for i in "${!FUNCNAME[@]}"; do
|
||||
std::eprintln " ${FUNCNAME[$i]} called at ${BASH_SOURCE[$i]}:${BASH_LINENO[$i - 1]}"
|
||||
! [ "$i" -eq 0 ] || continue
|
||||
|
||||
std::eprintln " $i: ${FUNCNAME[$i]}"
|
||||
|
||||
local src
|
||||
src=$(realpath --relative-to "$PWD" -e "${BASH_SOURCE[$i]}")
|
||||
if [ "${src:0:1}" != "." ]; then
|
||||
src=./$src
|
||||
fi
|
||||
|
||||
if [ "${BASH_LINENO[$i - 1]}" -eq 0 ]; then
|
||||
std::eprintln $'\033[0m'" at "$'\033[1;35m'"$src"
|
||||
else
|
||||
std::eprintln $'\033[0m'" at "$'\033[1;35m'"$src:${BASH_LINENO[$i - 1]}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user