博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gdb中信号的处理[转]
阅读量:5104 次
发布时间:2019-06-13

本文共 940 字,大约阅读时间需要 3 分钟。

转自:http://www.cppblog.com/fwxjj/archive/2011/12/06/161621.html

信号(Signals)

信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。UNIX定义了许 多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号; SIGKILL表示终止程序运行的信号,等等。信号量编程是UNIX下非常重要的一种技术。
GDB有能力在你调试程序的时候处理任何一种信号,你可以告诉GDB需要处理哪一种信号。你可以要求GDB收到你所指定的信号时,马上停住正在运行的程序,以供你进行调试。你可以用GDB的handle命令来完成这一功能。
handle
在GDB中定义一个信号处理。信号可以以SIG开头或不以 SIG开头,可以用定义一个要处理信号的范围(如:SIGIO-SIGKILL,表示处理从SIGIO信号到SIGKILL的信号,其中包括SIGIO, SIGIOT,SIGKILL三个信号),也可以使用关键字all来标明要处理所有的信号。一旦被调试的程序接收到信号,运行程序马上会被GDB停住,以 供调试。其可以是以下几种关键字的一个或多个。
nostop
当被调试的程序收到信号时,GDB不会停住程序的运行,但会打出消息告诉你收到这种信号。
stop
当被调试的程序收到信号时,GDB会停住你的程序。
print
当被调试的程序收到信号时,GDB会显示出一条信息。
noprint
当被调试的程序收到信号时,GDB不会告诉你收到信号的信息。
pass
noignore
当被调试的程序收到信号时,GDB不处理信号。这表示,GDB会把这个信号交给被调试程序会处理。
nopass
ignore
当被调试的程序收到信号时,GDB不会让被调试程序来处理这个信号。
info signals
info handle
查看有哪些信号在被GDB检测中。

转载于:https://www.cnblogs.com/shiweifu/archive/2012/03/08/2384526.html

你可能感兴趣的文章
vi命令提示:Terminal too wide
查看>>
nyoj 5 Binary String Matching(string)
查看>>
引用 移植Linux到s3c2410上
查看>>
BizTalk 2010 单机安装
查看>>
人与人之间的差距是从大学开始的
查看>>
vue 开发过程中遇到的问题
查看>>
5.13日日常记录
查看>>
25.openssl编程——证书申请
查看>>
结对项目2
查看>>
P1991 无线通讯网
查看>>
Python Socket
查看>>
学期总结
查看>>
进击的Objective-C-------------继承初始化
查看>>
EasyNVR RTSP转HLS(m3u8+ts)流媒体服务器前端构建之:bootstrap-datepicker日历插件的实时动态展现...
查看>>
兼容性强、简单、成熟、稳定的RTMPClient客户端拉流功能组件EasyRTMPClient
查看>>
js中各种跨域问题实战小结(二)
查看>>
JavaScript 缓存基本原理
查看>>
Stack_L.h
查看>>
zookeeper系列之九—zookeeper数据模型
查看>>
linux C++下捕获崩溃日志
查看>>