GDB调试多线程程序
2015-12-22 21:33
225 查看
gdb有thread相关命令,如
再配合frame(简写f)相关的命令(比如
其他的debugger,应该也会有同样的功能。
不过如果用的线程比较多的话……建议还是写一些辅助函数,在debug过程中打印出tid,然后对比一些蹊跷的地方,效果会更好。
info thread(简写成info th)显示线程消息,
b xx thread yy可以针对某个thread设置断点,
thread xx(简写成thr xx)切换到某个thread。
再配合frame(简写f)相关的命令(比如
up,
down在不同frame间跳转),基本可以处理若干个不同的线程间的debug……
其他的debugger,应该也会有同样的功能。
不过如果用的线程比较多的话……建议还是写一些辅助函数,在debug过程中打印出tid,然后对比一些蹊跷的地方,效果会更好。
查找进程id ps -e | grep a.out(a.out)为名字 12826 pts/3 00:00:00 a.out //进程id为12826 启动gdb attach 进程 [root@localhost ~]# gdb a.out 12826 (gdb) info threads //显示所有线程信息 (gdb) thread 2 //跳到第2个线程 (gdb) bt //查看线程2的堆栈,可以发现该线程堵塞在lock.c第17行
相关文章推荐
- 用mysqlslap对MySQL进行压力测试
- 一个诡异的spark-submit运行问题(已解决)
- 关于 IOS7下 UITextview的contentsize.height不能准确判断高度
- ❀自我唠嗑OC-集合遍历和数组排序
- Learn flask in the hard way:配置环境的安装
- SHOW PROCESSLIST
- 【转】自定义搜索框(SearchView)
- 在 Autolayout 项目中自定义 NavigationBar
- leetcode -- Minimum Window Substring -- 重点,应该会考
- java学习第一天--窗体程序开发之swt学习
- 四年今日
- Mysql Explain 详解
- 由浅入深探究mysql索引结构原理、性能分析与优化
- HDU 1551 Cable master 二分
- django中使用日志输出
- 了解Spring 注解注入
- opus交叉编译
- MySQL服务器安装完之后如何调节性能
- VB图像识别、语音识别源代码+注释
- ListView优化原理详解