2011-10-16 66 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複製到遠程機器,並調試「正常」。

相關問題