# Script to run a headless gdb printing a stacktrace on a fatal signal # Use it as: `gdb -batch -nx -x gdbcmds.txt --args $PROGRAM_AND_ARGS` # Configure CMake with -DSDLTEST_GDB=ON to use with within CTest. set pagination off set confirm off set verbose off # Only stop on real crash signals handle SIGSEGV stop print nopass handle SIGABRT stop print nopass handle SIGILL stop print nopass handle SIGFPE stop print nopass handle SIGBUS stop print nopass # Ignore SIGPIPE and SIGTERM signals # (SIGTERM is used by testthread) handle SIGPIPE nostop noprint pass handle SIGTERM nostop noprint pass define hook-stop if !$_isvoid($_siginfo) printf "\n=== Crash detected (signal %d) ===\n", $_siginfo.si_signo bt full quit 1 end end run # Normal exit path if !$_isvoid($_exitcode) quit $_exitcode end quit 0