gdb与信号
http://simohayha.iteye.com/blog/493091
gdb可以监测在你的程序中的任何信号。
主要靠的命令是:
handle signal [keywords...]
这里的keywords可以有以下内容:
1 nostop gdb接收到信号不会停止程序,而只是打印出一段message
2 stop 和上面类似只不过会停止程序。
3 print 当信号发生必须打印一条消息通知。
4 noprint 信号发生,gdb将不会打印任何东西。
5 pass和noignore 这两个是同义的。表示信号对你的程序是可见的。
6 nopass和ignore 这两个也是同义的。和上面相反。。
线程模式,
set scheduler-locking on|off|step
默认为off,也就是所有的线程都一起走。
set schedule-multiple mode
这个是针对进程的线程,如果为on,那么所有进程的线程都能够执行。
none-stop模式。
顾名思义,当程序在gdb中停止,只有当前的线程会被停止,而其他的线程将会继续运行。
这个时候step,next这些命令就只对当前的线程起作用。
我们要打开这个模式需要这样操作:
# Enable the async interface.
set target-async
# If using the CLI, pagination breaks non-stop.
set pagination off
# Finally, turn it on!
set non-stop on
在all-stop模式中interrupt将会停止所有的线程。而在none-stop中只会停止当前线程。interrupt -a此时就能停止所有线程。’
当你有多个线程,你此时只想给某个线程设置断点,这个时候可以用这个命令:
break linespec thread threadno
break linespec thread threadno if ...
linespec为源码行号,threadno为线程id。
gdb与信号的更多相关文章
- gdb中信号
信号(Signals) 信号是一种软中断,是一种处理异步事件的方法.一般来说,操作系统都支持许多信号.尤其是UNIX,比较重要应用程序一般都会处理信号.UNIX定义了许 多信号,比如SIGINT表示中 ...
- 使用pstack和gdb调试死锁
1:代码 下面是一个简单的能够发生死锁的代码: #include <unistd.h> #include <pthread.h> #include <string.h&g ...
- 自动kill慢查询
在生产环境中,DB服务器经常会被并发的慢查询压挂,因此事前进行sql审核避免烂SQL很重要.万一不小心慢sql还是跑到线上,并且并发还不小,这是dba肯定会收到告警.dba上线处理第一时间是定位并ki ...
- 【LINUX】编程笔记
a storage class can only be specified for objects and functions extern修饰一个struct报错,错误原因如上,C++中存储类修 ...
- Android(工具・集成)
■ NDK Android从始(2009)至终是支持JNI的. 只不过一开始没有NDK.需要自己安装交叉编译器创建so,然后放到assert之类捆绑so发布. 有了NDK.有了什么? libc lib ...
- 【转贴】gdb中的信号(signal)相关调试技巧
一篇不错的帖子,讲的是gdb中的信号(signal)相关调试技巧 转自Magic C++论坛 http://www.magicunix.com/index_ch.html http://www.m ...
- gdb(ddd,kdevelop等)调试ZeroIce开发的应用程序,中断信号引起的问题
不作文,只记要点. 1.Ice::Application的程序框架默认对SIGHUP, SIGINT, SIGTERM进行处理.目的就是捕捉Ctrl+C发出信号有序地结束程序.这个功能扰乱了我们使用g ...
- gdb调试时忽略SIGPIPE 等信号
GDB调试网络程序时,会遇到SIGPIPE信息,默认GDB会把程序停下来,即使程序使用signal(SIGPIPE, SIG_IGN);来忽略信号.用handle命令设置一下缺省的signal的处理行 ...
- linux应用调试技术之GDB和GDBServer
1.调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer.在应用程序调试的时候,pc机上的gdb向开发板上的GDB ...
随机推荐
- Laravel核心解读--Contracts契约
Contracts Laravel 的契约是一组定义框架提供的核心服务的接口, 例如我们在介绍用户认证的章节中到的用户看守器契约IllumninateContractsAuthGuard 和用户提供器 ...
- if判断语句
6)if判断语句 if ... then else end if; if ... then elsif ... then elsif ... then else ...
- Eureka Server的REST端点
Eureka Server的REST端点 Windows下面可以安装Curl: 使用more命令可以显示xml内容: D:\Java\IdeaProjects>more rest-api-tes ...
- Spring+mybatis+struts框架整合的配置具体解释
学了非常久的spring+mybatis+struts.一直都是单个的用他们,或者是两两组合用过,今天总算整合到一起了,配置起来有点麻烦.可是配置完一次之后.就轻松多了,那么框架整合配置具体解释例如以 ...
- POJ-1785-Binary Search Heap Construction(笛卡尔树)
Description Read the statement of problem G for the definitions concerning trees. In the following w ...
- we标签
功能: · 辅助标签.配合其它标签使用,防止与标准html标签冲突 · 别名为test 使用方法: <we [name=key]>[value]</we& ...
- java之IO处理
File文件基础 文件与文件夹抽象路径名称的表示.其构造方法有四个 File(File parent,String child):从抽象父文件夹下创建一个File实例. File(String par ...
- zzuoj--1001--汽水瓶(简单数学)
1001: 汽水瓶 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 194 Solved: 77 [Submit][Status][Web Board ...
- 性能监控之监控SQL语句
分析表 analyze table tablename compute statistics for all indexes; analyze table tablename compute stat ...
- 如何使用scss/sass
SCSS 与 Sass 异同:http://sass.bootcss.com/docs/scss-for-sass-users/: 欢迎加入前端交流群来py: 转载请标明出处! 废话不多说,直接进入正 ...