某deamo只能在运行时调试,通过GDB中的attach命令绑定线程,一切都OK了。
步骤如下:
1)确定线程号
我的process名为webproc,使用ps -eL显示线程
[[email protected] linux]$ ps -eL|grep webproc 29176 29176 pts/0 00:00:00 webproc 29176 29182 pts/0 00:00:00 webproc 29176 29183 pts/0 00:00:00 webproc 29176 29184 pts/0 00:00:00 webproc
此时我想要调试的线程为29184号
2)启动gdb,使用attach命令绑定线程。
(gdb) attach 29184 Attaching to process 29184
3)在绑定线程后,线程处在阻塞状态,此时就可以打断点了。
在打断点前先指定webproc的源代码文件位置。我的源代码放在了/home/syscom/jud/webproc/目录下。
dir /home/syscom/jud/webproc
注意:dir命令不能递归搜索源代码文件夹!必须是源代码的直接上层目录
4)输入"c"启动线程
当断点被触发时,即可单步调试了
时间: 2024-10-08 01:58:19