原文:http://peeterjoot.wordpress.com/2010/07/07/avoiding-gdb-signal-noise/
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) cContinuing.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 SIGUSR1Signal Stop Print Pass to program DescriptionSIGUSR1 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 nostopSignal Stop Print Pass to program DescriptionSIGUSR1 No No Yes User defined signal 1