What Is SIG32 During a GDB Debug Session?

Sometimes, when debugging with GDB on Linux, the debugger may stop with the following notification:

Program received signal SIG32, Real-time event 32.

This may be a little confusing and mislead you to think something is wrong with the debugged program, as I have thought when I first saw this message.

However, this is not an error. glibc uses SIG32 to signal the cancellation of threads created using the pthread library. That’s why, if and when you need to do some operation with all signals in the system, you must start from the minimum defined by SIGRTMIN and not the real (kernel) minimum, __SIGRTMIN. SIGRTMIN is defined in /usr/include/signal.h.

To disable these notifications inside GDB, so that you won’t be bothered with thread cancellation again, type the following inside GDB:

handle SIG32 nostop