【问题标题】:Resume gdb session after parent shell terminated在父 shell 终止后恢复 gdb 会话
【发布时间】:2019-07-26 11:58:19
【问题描述】:

我在 SSH shell 上运行 gdb。一段时间后,shell 由于空闲而断开连接。重新连接时,我看到 gdb 实例仍在运行。

  1. 如何控制正在运行的 gdb 实例?
  2. 我可以启动一个新的 gdb 实例并从正在运行的 gdb 实例接管会话吗?

注意:这不是要保持 SSH 会话处于活动状态。这更多是关于从另一个 shell 实例控制 gdb。无论是从 SSH 运行还是在本地运行。

【问题讨论】:

标签: linux bash debugging gdb disconnection


【解决方案1】:

您可能无法对已经运行的 gdb 执行任何操作。它可能根本不再有控制 tty。您可能想要做的是杀死它,然后启动一个新的 gdb 进程,但在 tmuxscreen 之类的程序中执行此操作。如果您这样做,那么如果/当您断开连接时,您可以随时轻松地重新连接到 tmux/screen 会话。只需查看这些程序的手册即可。他们做的事情几乎一样。我觉得 tmux 更强大一点。

【讨论】:

  • 谢谢鲍勃。知道什么决定了 SSH 终止时进程是否终止吗?
  • 它应该得到一个信号。 SIGHUP 我相信。这完全取决于程序如何处理该信号。
  • tmux/screen 不会退出,但是。您可以在重新连接时重新连接。假设连接本身是可靠的,还有一些方法可以防止 ssh 完全断开连接。在某处,我在 ssh_config 中为表现这种方式的服务器设置了 ServerAliveInterval。我更喜欢我的 ssh 会话保持连接,即使它们没有发生任何事情......
猜你喜欢
  • 2021-09-02
  • 2011-06-24
  • 2023-03-09
  • 2012-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
相关资源
最近更新 更多