|
|
|
@ -290,6 +290,7 @@ function dump_failure { |
|
|
|
function save_err_trace_to_main { |
|
|
|
miaou_debug "<save_stacktrace_to_stderr count=${#error_source[@]} to=${MIAOU_BASH_ERROR_CHILDREN}>" |
|
|
|
local i source lineno funcname |
|
|
|
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done |
|
|
|
for i in "${!error_source[@]}"; do |
|
|
|
source="${error_source[$i]}" |
|
|
|
lineno="${error_lineno[$i]}" |
|
|
|
@ -297,7 +298,6 @@ function save_err_trace_to_main { |
|
|
|
miaou_debug "<trace source=${source} lineno=${lineno} funcname=${funcname}/>" |
|
|
|
>>"$MIAOU_BASH_ERROR_CHILDREN" echo -e "\tmiaou_trace: source=${source} lineno=${lineno} funcname=${funcname}" |
|
|
|
done |
|
|
|
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done |
|
|
|
miaou_debug "</save_stacktrace_to_stderr>" |
|
|
|
} |
|
|
|
|
|
|
|
@ -347,10 +347,25 @@ function load_tmp_error { |
|
|
|
miaou_debug "<tmp_error empty/>" |
|
|
|
else |
|
|
|
miaou_debug "<tmp_error count=${count}>" |
|
|
|
local i |
|
|
|
for i in "${tmp_error[@]}"; do |
|
|
|
miaou_debug "<tmperr content={$i}/>" |
|
|
|
local i miaou_error_regex last_miaou_error_index=-1 content |
|
|
|
local multiple_errors=() |
|
|
|
miaou_error_regex='^(.*): line ([0-9]+): miaou_error:' |
|
|
|
for i in "${!tmp_error[@]}"; do |
|
|
|
content="${tmp_error[i]}" |
|
|
|
miaou_debug "<tmperr index=$i content={$content}/>" |
|
|
|
if [[ "$content" =~ $miaou_error_regex ]]; then |
|
|
|
if [[ $last_miaou_error_index -ge 0 ]]; then |
|
|
|
multiple_errors+=("$last_miaou_error_index") |
|
|
|
fi |
|
|
|
last_miaou_error_index=$i |
|
|
|
fi |
|
|
|
done |
|
|
|
if [[ "${#multiple_errors[@]}" -gt 0 ]]; then |
|
|
|
miaou_debug "multiple_errors = ${multiple_errors[*]}" |
|
|
|
for i in "${multiple_errors[@]}"; do unset "tmp_error[$i]"; done |
|
|
|
tmp_error=("${tmp_error[@]}") |
|
|
|
fi |
|
|
|
|
|
|
|
miaou_debug "</tmp_error>" |
|
|
|
fi |
|
|
|
else |
|
|
|
|