Linux 在父shell终止后恢复gdb会话

Linux 在父shell终止后恢复gdb会话,linux,bash,debugging,gdb,disconnection,Linux,Bash,Debugging,Gdb,Disconnection,我在SSH shell上运行gdb。一段时间后,由于闲置,外壳断开。重新连接时,我看到gdb实例仍在运行 如何控制正在运行的gdb实例 我可以启动一个新的gdb实例并从正在运行的gdb实例接管会话吗 注意:这与保持SSH会话活动无关。这更多的是关于从另一个shell实例控制gdb。不管它是从SSH还是本地运行。您可能无法对已经运行的gdb执行任何操作。它可能根本就没有控制tty了。您可能想要做的是杀死它,然后启动一个新的gdb进程,但是在一个程序中执行,比如tmux或screen。如果您这样做,

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

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

  • 注意:这与保持SSH会话活动无关。这更多的是关于从另一个shell实例控制gdb。不管它是从SSH还是本地运行。

    您可能无法对已经运行的gdb执行任何操作。它可能根本就没有控制tty了。您可能想要做的是杀死它,然后启动一个新的gdb进程,但是在一个程序中执行,比如tmuxscreen。如果您这样做,那么如果/当您断开连接时,您可以随时轻松地重新连接到tmux/屏幕会话。只要看看那些程序的手册就可以了。他们做的几乎一样。我认为tmux功能更强。

    谢谢Bob。知道什么决定了SSH终止时进程是否终止吗?它应该得到一个信号。我相信是的。这完全取决于程序如何处理该信号。不过,tmux/screen不会退出。您可以在重新连接时重新连接。假设连接本身是可靠的,还有一些方法可以防止ssh断开连接。在此过程中,我在ssh_config中为一个以这种方式运行的服务器设置了ServerAliveInterval。我更希望我的ssh会话保持连接,即使其中没有发生任何事情…可能重复、、等。