在gdb调试时忽略系统信号(signal)
在gdb调试程序时,默认情况下gdb在收到信号时会中断程序的运行,并将收到的信号显示出来。这时,可以选择输入 c
(continue)让程序继续运行。如果程序会重复收到这信号,会非常影响调试效率。可以通过配置忽略指定的系统信号。
查看当前系统信号的处理信息的指令如下。
(gdb) info signal
以调试网络程序为例,进程会经常收到 SIGPIPE
消息,对于网络进程的 SIGPIPE
消息在程序中会由自身处理,可以使用以下指令让gdb不再提示 SIGPIPE
信号。
(gdb) handle SIGPIPE nostop noprint
其中, nostop
表示在收到信号时不再中断程序的运行, noprint
表示在收到信号时不再将收到的信号打印到gdb调试界面,这两个参数可以分开使用。
参考资料: gnu gdb manual
(全文完)