./all: drop into gdb if a crash happened and gdb is available (otherwise keep using...
authorRudolf Polzer <divverent@alientrap.org>
Fri, 1 Oct 2010 05:16:04 +0000 (07:16 +0200)
committerRudolf Polzer <divverent@alientrap.org>
Fri, 1 Oct 2010 05:16:04 +0000 (07:16 +0200)
all
savecore.gdb [new file with mode: 0644]

diff --git a/all b/all
index a36db26..6b19347 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
diff --git a/savecore.gdb b/savecore.gdb
new file mode 100644 (file)
index 0000000..10a4c0c
--- /dev/null
@@ -0,0 +1,5 @@
+run
+set pagination off
+echo \n\nIf the following commands show errors, that can be ignored:\n
+bt
+generate-core-file xonotic.core