STACKTRACE() {
trap - ERR
- local i=0
+ local i
stacktrace
echo bt full > gdb_commands.txt
echo l >> gdb_commands.txt
echo quit >> gdb_commands.txt
- for core in $(echo core* 2>/dev/null); do
- bin=$(gdb -batch -c "$core" 2>&1 | grep "generated by" | \
- sed -e "s,.*generated by \`\([^ ']*\).*,\1,")
- gdb -batch -c "$core" -x gdb_commands.txt "$(which "$bin")"
+ # TODO: use sysctl to get 'core' position in system
+ for i in core*; do
+ test -f "$i" || break # empty globbing
+ bin=$(gdb -batch -c "$i" 2>&1 | grep "generated by" | \
+ sed -e "s,.*generated by \`\([^ ']*\).*,\1,") || continue
+ gdb -batch -c "$i" -x gdb_commands.txt "$(which "$bin")" || continue
done
fi