日期:2014-05-16  浏览次数:20657 次

gdb上多进程怎么调试?????急,急,急
   在hp ux 上调试一个程序,fork了两次,想进入子进程进行调试,怎么也进不去。。不知道怎么办了,给位亲,救命。。


先运行程序
查看进程号ps -ef |grep uagentd
进入gdb
attach 进程号


说是这么说,具体实现起来在怎么也不行,气死我了都。。。如下


(gdb) attach 5371
Attaching to program: /home/oracle/work/uagent/uagentd, process 5371
[New process 5371, lwp 6451]
[New process 5371, lwp 6452]




就想上面所示,[New process 5371, lwp 6452]后就一直不动,没有反应了


是不是哪出错了

最好有个例子可以给我看一下

网上找的例子,我试了下,都是这种情况啊??????????

------解决方案--------------------
http://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/
------解决方案--------------------
这个我看了,但是怎么在我的机器上就是attach不上去呢,,,
有没有人有过gdb调试的经验??
------解决方案--------------------
咋没人回答呢??
------解决方案--------------------
我曾经调试多进程的程序是自己在另一个进程上打一个桩,比如用一个变量判断是否要执行下去,然后Exec另一个进程后先下断点,然后修改那个变量值,然后才让另一个进程跑下去。的确比较麻烦,sigh...
------解决方案--------------------
子进程上断点打了么?
------解决方案--------------------
set follow-fork-mode child
子进程设置断点

------解决方案--------------------
可能是我的机器不支持这种gdb的调试法吧

我后来用日志形式看的,也挺麻烦的

谢谢给位了
------解决方案--------------------
引用:
这个我看了,但是怎么在我的机器上就是attach不上去呢,,,
有没有人有过gdb调试的经验??

attach怎么不行,错误信息贴出来
------解决方案--------------------
该回复于2012-07-21 09:57:18被版主删除
------解决方案--------------------
可能是hp机器本身的问题
请高手代为调试也是这样