我有一个守护进程(比如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> &");


应该可以。也许之后增加睡眠以给xterm / gdb时间。

关于c++ - 启动/重新启动时,如何使GNU调试器gdb附加到守护程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42129805/

10-09 08:41
查看更多