我编写的程序涉及使用ptrace
控制跟踪进程。当然,有错误:)为了修复我的错误,我希望能够用gdb
检查跟踪状态。但是,gdb -p
说:
warning: process X is already traced by process Y
如果我只使用PTRACE_DETACH
,那么tracee将继续执行,直到我启动gdb
,这可能会破坏我试图检查的状态。
非常感谢有关如何检查ptrace tracee的运行时状态(可能使用gdb
以外的工具)的任何建议。
答案 0 :(得分:1)
有关如何检查ptrace tracee
的运行时状态的任何建议
一种方法是让跟踪器实现GDB remote debugging protocol。其他文档here。
同样this answer显示了如何在不恢复进程的情况下分离进程。