是否可以使用 gdb 通过 ssh 远程调试?

Joh*_*den 5 gdb remote-debugging

我可以使用本地源文件调试在我具有 ssh 访问权限的远程目标上运行的程序吗?

假设我的家用计算机上的目录中有一个名为 hello.c 的程序/home/jla/hello

在远程计算机上,我将相同的文件放在目录 /hello 中,并使用 编译它 $ gcc -g -o hello hello.c,然后删除远程 hello.c,但保留可执行文件。

然后我可以在本地运行 gdb,将其通过 ssh 连接到远程计算机以运行可执行文件,但使用本地源作为参考吗?

笔记:

  1. 令人烦恼的是,远程机器非常精简且无法更改。它有 gdb,但没有 gdbserver

  2. 请注意,本地和远程计算机具有不同的体系结构。在这种特殊情况下,64 位和 32 位英特尔

  3. 我真正想做的是在 emacs/gud 下运行它。但这将是一个很好的开始。

Emp*_*ian 3

远程和本地机器的架构并不重要。重要的是如何构建hellogdb和。gdbserver

从您的描述来看,这听起来hello是为(在远程机器上)构建的x86_64-linux-gnu

这意味着您需要x86_64-linux-gnu gdbserver,并且还需要一个能够调试二进制x86_64文件的 32 位 GDB。您应该能够构建两者、复制gdbserver到远程计算机并“正常”调试。