C++ 如何使GNU调试器gdb在启动/重新启动时连接到守护进程?
我有一个守护进程(比如tempd)正在运行,gdb连接到它C++ 如何使GNU调试器gdb在启动/重新启动时连接到守护进程?,c++,c,linux,debugging,C++,C,Linux,Debugging,我有一个守护进程(比如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 . 当守护进程重新启动时,如何使
% 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-c gdb&”);
我们应该做到这一点。可能会在之后添加一个sleep,让xterm/gdb有时间出现。您可以创建另一个脚本,该脚本会不断地或以惰性方式进行检查
如果创建了名为x的进程
然后执行gdb并附加到它。这似乎与。试着去问问那里