./all: drop into gdb if a crash happened and gdb is available (otherwise keep using...
[xonotic/xonotic.git] / all
diff --git a/all b/all
index a36db2684662e2aa2d982a6e62934a82f99a5bc1..6b19347bb4e098367ebd43ca8a2796354efff388 100755 (executable)
--- a/all
+++ b/all
@@ -666,12 +666,21 @@ case "$cmd" in
                        fi
                fi
 
+               binary=$1
+
                if [ -n "$USE_GDB" ]; then
                        set -- gdb --args "$@"
+               elif which gdb >/dev/null 2>&1; then
+                       set -- gdb --batch -x savecore.gdb --args "$@"
                elif which catchsegv >/dev/null 2>&1; then
                        set -- catchsegv "$@"
                fi
+               rm -f xonotic.core
                "$@"
+               if [ -f xonotic.core ]; then
+                       echo "The program has CRASHED. Please examine the core dump in the debugger."
+                       gdb "$binary" xonotic.core
+               fi
                ;;
        each|foreach)
                keep_going=false