如何跟踪由fork创建的子进程? 求救???

geeksun 2006-04-22 05:56:33
我在看一个多进程多线程的网络程序, 系统通过fork创建好多进程, 我想跟踪各个进程, 以了解子进程的工作机制. 可是, GDB好像不太方便进行跟踪, 还是我没有充分掌握GDB的用法. 有没有很好的跟踪子进程工具???? 请多多指教, 先谢谢了.
...全文
352 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
geeksun 2006-04-24
  • 打赏
  • 举报
回复
Thank you.
brookqdc 2006-04-24
  • 打赏
  • 举报
回复
mark
universes 2006-04-24
  • 打赏
  • 举报
回复
mark
tb01412 2006-04-23
  • 打赏
  • 举报
回复
在跟踪子进程之前,先要脱离父进程,不用杀死父进程,具体请参阅GDB手册,上面说得比较详细的
geeksun 2006-04-23
  • 打赏
  • 举报
回复
谢谢你们。
我曾经试过用ps找到子进程,然后用attach调试,可是问题是它让我杀死当前进程,我想主进程不能杀死,就选择了n, 系统就不理会attach命令了。 我曾尝试给在子进程代码里设置断点,可是,也不行。 苦闷!
NC 2006-04-23
  • 打赏
  • 举报
回复
一个笨办法:在子进程里面用打印自己的进程号,再用sleep(60)暂停,再用gdb attach上去调试!
tb01412 2006-04-22
  • 打赏
  • 举报
回复
GDB的手册中说明了如何调试子进程的方法:
首先获取子进程的ID,然后再attach的方法来调试子进程,这是唯一可行的方案,就算是在WINODWS中的各个调试器,好像没有什么工具能同时调试N个进程的东东吧?
sirarker 2006-04-22
  • 打赏
  • 举报
回复
GDB只是调试单个进程的工具(但是你可以利用多个GDB调试多个进程,这样每个GDB成为一个调试服务器),你可以先用GDB启动主进程,然后不断用ps命令获取新创建的进程的pid,再通过attach方式调试fork出来的进程。
No Thanks 8-)

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧