我有一个守护进程(比如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中启动守护进程的选项,因为它是由事件触发的。
答案 0 :(得分:0)
这是你自己的守护进程吗?如果是这样,可以从守护进程中启动gdb吗?
system( "xterm -c gdb <prog-path> <pid> &");
应该做的伎俩。也许之后再加一个睡眠来给xterm / gdb时间。
答案 1 :(得分:0)
你可以创建另一个脚本,不断检查或者在inerval中进行检查 如果创建了名为x的进程 然后执行gdb并附加到它。