全部博文(96)
分类:
2010-11-09 16:48:15
GDB中有一个handle命令,可以指定如何处理收到信号,GDB支持的对信号的处理主要有以下几种:
(1)stop和nostop: nostop表示当GDB收到指定的信号,不会应用停止程序的执行,只会打印出一条收到信号的消息,因此,nostop也暗含了下面的print; 而stop则表示,当GDB收到指定的信号,停止应用程序的执行。
(2)print和noprint: print表示如果收到指定的信号,打印出一条信息; noprint与print表示相反的意思
(3)pass和nopass:pass表示如果收到指定的信号,把该信号通知给应用程序; nopass表示与pass相反的意思
(4)ignore和noignore: ignore与nopass同义,同理,noignore与pass同义
GDB中handle命令的具体用法为:handel signal action
(1)signal:可以为数字1-15,也可以为符号类型的,比如:SIGSEGV, SIGINT。
(2)action: 为上面介绍的stop/nostop, print/noprint, pass/nopass和ignore/noignore中的其中一种。
(3)在gdb中,用info signals或者info handle,可以查看哪些信号被GDB处理,并且可以看到缺省的处理方式,下图是1-15号信号的:
from:?p=1188