请教各位一般怎么用GDB调试后台进程?

lsof 2005-11-22 09:01:46
两个进程,proc1和proc2,proc1工作在后台,通过proc1 &启动,proc2在前台,提供一个类似shell的界面,就是那种网络设备的操作界面,提供它自己的一些命令,对每个命令,proc2经过一系列复杂处理之后,最终会通过IPC方式交给proc1的某个函数处理,可以认为proc2的一个命令对应proc1中的一个处理函数。
现在想在proc1中的这种函数处中断,该怎么办好,试了很多方法都不奏效,请教各位。
...全文
439 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sleeves 2005-11-25
  • 打赏
  • 举报
回复
proc1和proc2在不同的tty上运行,
gdb proc1之后设端点在那个函数然后r运行
然后proc2发交易请求,proc1轮询ipc后可以调试.
bekars 2005-11-23
  • 打赏
  • 举报
回复
我觉得调试好之后,再把程序运行成daemon状态比较方便。
lsof 2005-11-23
  • 打赏
  • 举报
回复
问题是proc2必须启动,它相当于proc1的前端,如果不启动,proc1就无法控制了。
还有proc1必须是后台进程,因为proc2要接管shell,自己提供一个命令行界面。
CU有网友说用另一个tty来运行gdb然后attach上去,我试试先。
YanDong_8212 2005-11-23
  • 打赏
  • 举报
回复
hundlom(托克维尔)说的不错,如果程序已经在进行用c来启动调试,如果没有启动,用r启动。
其他都差不多
hundlom 2005-11-23
  • 打赏
  • 举报
回复
之后在其中就可以跟踪了。
如果需要断点就不要用&运行程序了,直接用gdb调式
hundlom 2005-11-23
  • 打赏
  • 举报
回复
1:编译pro1的时候要带-g参数
2:用ps -u username|grep pro1找到pro1的进程号
3: 用gdb - id跟踪

23,116

社区成员

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

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