mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-04-20 15:25:33 +02:00
37 lines
830 B
Plaintext
37 lines
830 B
Plaintext
# 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
|