2011-10-16 65 views
2

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

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

而在远程机器上,我把这个相同的文件放在一个目录/ hello中,然后用 $ gcc -g -o hello hello.c进行编译,然后删除远程hello.c,但保留可执行文件。

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

注:

  1. 烦人,远程机器是非常精简的,不能改变。它有gdb,但它没有gdbserver

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

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

+0

gdb和gdb只是一个用户模式程序。您不能将其中一个或另一个复制到您的远程目录中?或/ tmp? – bmargulies

回答

3

远程和本地机器的体系结构很少。重要的是如何构建hello,gdbgdbserver

它从你的描述是hello建(远程机)为x86_64-linux-gnu

这意味着你需要x86_64-linux-gnugdbserver,也是32位GDB,它能够调试x86_64二进制文件的声音。您应该能够构建两者,将gdbserver复制到远程机器,并调试“正常”。

相关问题