avoiding gdb signal noise.
Posted by peeterjoot on July 7, 2010
A quick note for future reference (recorded elsewhere and subsequently lost).
Suppose your program handles a signal that gdb intercepts by default, like the following example
(gdb) c Continuing. Program received signal SIGUSR1, User defined signal 1. [Switching to Thread 47133440862528 (LWP 4833)] 0x00002ade149d6baa in semtimedop () from /lib64/libc.so.6 (gdb) c
You can hit ‘c’ to continue at this point, but if it happens repeatedly in various threads (like when one thread is calling pthread_kill() to force each other thread in turn to dump its stack and stuff) this repeated ‘c’ing can be a bit of a pain.
For the same SIGUSR1 example above, you can query the gdb handler rules like so:
(gdb) info signal SIGUSR1 Signal Stop Print Pass to program Description SIGUSR1 Yes Yes Yes User defined signal 1
And if deemed to not be of interest, where you just want your program to continue without prompting or spamming, something like the following does the trick:
(gdb) handle SIGUSR1 noprint nostop Signal Stop Print Pass to program Description SIGUSR1 No No Yes User defined signal 1