【问题标题】:How can I make GNU debugger gdb attach to a daemon when it starts/restarts?如何让 GNU 调试器 gdb 在启动/重新启动时附加到守护程序?
【发布时间】:2017-02-09 06:34:23
【问题描述】:

我有一个守护进程(比如 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 中启动守护进程的选项,因为它是由事件触发的。

【问题讨论】:

  • 这似乎与askubuntu 更相关。尝试在那里问

标签: c++ c linux debugging


【解决方案1】:

它是你自己的守护进程吗?如果是这样,可以从守护进程中启动 gdb 吗?

system( "xterm -c gdb <prog-path> <pid> &");

应该可以解决问题。也许之后添加一个睡眠,让 xterm/gdb 有时间出现。

【讨论】:

    【解决方案2】:

    您可以创建另一个脚本,该脚本不断地或在一个 inerval 中进行检查
    如果创建了一个名为 x 的进程
    然后执行 gdb 并附加到它。

    【讨论】:

      猜你喜欢
      • 2016-09-20
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      相关资源
      最近更新 更多