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

时间:2011-10-16 20:42:02

标签: gdb remote-debugging

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

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

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

我可以在本地运行gdb,让它进入远程机器运行可执行文件,但是使用本地源作为参考吗?

注意:

  1. 令人讨厌的是,远程机器非常简单,无法更改。它有gdb,但它没有gdbserver

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

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

1 个答案:

答案 0 :(得分:3)

远程和本地机器的架构非常重要。重要的是如何构建hellogdbgdbserver

从您的描述中可以看出hello是在x86_64-linux-gnu

构建的(在远程计算机上)

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