gdb来调式多线程【转】
来源:互联网 发布:免费刷手机淘宝流量 编辑:程序博客网 时间:2024/05/03 03:03
gdb来调式多线程, 真的不怎么好用, 不知道怎么让一个线程单步执行, 在当前调式的总只有一个线程. 在调式当前线程的时候其它线程就一直在运行, 不好控制. 自己也很不喜欢多线程调式, 通常都是将多线程程序想办法转换为单线程来调式, 把每个函数调式成功了再一起来运行. 在不就使用原始的print大法了.
------------------
下面来源: http://book.77169.org/ask30/how210438.htm
要点是先运行程序,再attach线程号进行调试。
1。先运行你的主程序
2。使用ps查看你程序的线程号,或者在线程程序里打印出来
3。运行gdb,运行“attach 线程号”
4。info stack看运行到哪里了,设线程文件中的断点
5。跟踪调试
6。“detach 线程号”取消调试该线程
我试过,成败基本对半开。
------------------
怎么查看线程号:
To get info about threads:
ps -eLf
ps axms
When used with -L, the NLWP (number of threads) and LWP (thread ID)
------------------
core文件怎么产生:
[gan@localhost tmp]$ ulimit -a
core file size (blocks, -c) 0
...
[gan@localhost tmp]$ ulimit -c unlimited
[gan@localhost tmp]$ ulimit -a
core file size (blocks, -c) unlimited
...
[gan@localhost tmp]$ ./a.out
段错误 (core dumped)
在当前目录下就产生core.[pid]的core文件了.
-------------------
还需要注意: gcc -g 参数就可以使用gdb调式了,但如果就只给你一个执行文件, 调式也是没有办法的. 今天刚测试完把别人的机器上的该执行文件拿到自己机器上gdb, 原来gdb需要访问原文件.c文件来显示详细的代码信息的.
------------------
下面来源: http://book.77169.org/ask30/how210438.htm
要点是先运行程序,再attach线程号进行调试。
1。先运行你的主程序
2。使用ps查看你程序的线程号,或者在线程程序里打印出来
3。运行gdb,运行“attach 线程号”
4。info stack看运行到哪里了,设线程文件中的断点
5。跟踪调试
6。“detach 线程号”取消调试该线程
我试过,成败基本对半开。
------------------
怎么查看线程号:
To get info about threads:
ps -eLf
ps axms
When used with -L, the NLWP (number of threads) and LWP (thread ID)
------------------
core文件怎么产生:
[gan@localhost tmp]$ ulimit -a
core file size (blocks, -c) 0
...
[gan@localhost tmp]$ ulimit -c unlimited
[gan@localhost tmp]$ ulimit -a
core file size (blocks, -c) unlimited
...
[gan@localhost tmp]$ ./a.out
段错误 (core dumped)
在当前目录下就产生core.[pid]的core文件了.
-------------------
还需要注意: gcc -g 参数就可以使用gdb调式了,但如果就只给你一个执行文件, 调式也是没有办法的. 今天刚测试完把别人的机器上的该执行文件拿到自己机器上gdb, 原来gdb需要访问原文件.c文件来显示详细的代码信息的.
- gdb来调式多线程【转】
- gdb调式
- gdb调式
- GDB 调式
- Linux设备驱动程序调式 GDB调式 内核调式KDB调式
- 简单使用gdb调式
- gdb调式程序
- gdb 调式汇编
- gdb调式程序
- gdb调式程序 .
- GDB常用调式命令
- gdb调式程序
- 【gdb调式桥】linux,android
- 使用gdb来调试多线程、多进程
- gdb多线程调试转
- qemu+gdb+ddd调式linux-0.11源码
- 关于如何导出 unity3d 如何调式多线程
- GDB 多线程
- How SKBs Work
- 091027(星期二)Tree Control Item States Overview
- 高手教你用Symantec VCS配置Oracle双机
- addActionError() 与addFieldError ()有什么不同
- redhat9上samba安装过程
- gdb来调式多线程【转】
- 浅谈谷歌与百度
- 论 JAVA的方法结构2
- shell总结
- js打印,自动复制,另存为,打开源码,新窗口延迟打开等代码
- outputstream inputstream
- ORACLE PL/SQL包(package)学习笔记
- 实战:如何用VCS构筑双机的基础
- 网页爬虫汇总