我有一个守护进程(比如 tempd)正在运行,并且 gdb 附加到它。
% ps x | grep tempd
5467 ?? S 0:00.36 /usr/sbin/tmpd -N
> gdb
gdb> symbol-file /var/tmp/tmpd
gdb> attach 5467
gdb> breakpoint a_funcion_name
breakpoint was set
gdb> c
continuing
.
如何让 gdb 在守护进程重新启动时自动附加到新的 PID?我想在找到守护进程的新 PID 并手动将 gdb 附加到它之前执行的函数处设置断点。我无法选择从 gdb 内启动守护进程,因为它是由事件触发的。
最佳答案
这是你自己的守护进程吗?如果是这样,可以从守护进程中启动 gdb 吗?
system( "xterm -c gdb <prog-path> <pid> &");
应该可以解决问题。也许之后添加一个 sleep ,让 xterm/gdb 有时间启动。
关于c++ - 如何让 GNU 调试器 gdb 在启动/重新启动时附加到守护进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42129805/