2011-10-16 23 views
1

我有一個32位的桌面,我的emacs副本正在運行。當我在emacs中通過ssh使用gdb時,可以在不同目錄中使用本地源文件?

我想能夠調試一個非常簡潔的qemu 64位虛擬機上運行的程序。

虛擬機有一個ssh端口24054,它給了我無密碼的root權限,並且它安裝了gdb。

而且它有它在我的桌面調用〜/ MYCO/chip_test掛載爲/ 9P

所以,如果我在〜/ MYCO/chip_test一個hello.c的文件所在的目錄,然後 去的64位機在虛擬機運行,並與編譯:

$ gcc的-o你好-g hello.c的

然後啓動虛擬機,並在我的32位桌面運行

$ SSH -p 24054 root @ anvil'cd/9p & & gdb ./hello'

然後gdb在我桌面上的窗口中以命令行模式完美運行。

所以現在當然我希望它在emacs下運行,因爲命令行gdb有點難以閱讀,我希望看到我的光標在文件中逐步移動,並且有帶有監視變量的窗口等等上。

所以我嘗試的Mx gdb的 運行GDB(像這樣):SSH -p 24054根@砧CD/9P & & GDB --annotate = 3 ./hello

和我得到一個調試器窗口起來emacs和一切都看起來不錯,事實上,我甚至可以通過點擊我的本地emacs中的〜/ myco/chip_test/hello.c文件來設置和刪除斷點,這與gdb所看到的/ 9p/hello.c,但移動的光標不會出現或移動,所以整個事情是相當無用的。

所以我認爲emacs/Gud並不完全意識到〜/ myco/chip_test/hello.c是調試器認爲是/9p/hello.c的文件,儘管顯然有些有趣的事情發生了,因爲我可以設置斷點,所以我想知道是否有方法讓循環中的一個或另一個程序翻譯文件名,以便一切正常。

任何想法,或者我只是想說這全錯了嗎?

回答

1

你會得到更好的結果,如果你要麼

  • 在 VM(所以源路徑完全匹配)上/home/<user>/myco/chip_test安裝/home/<user>/myco/chip_test,或
  • 在虛擬機上運行gdbserver,並連接本地GDB。
相關問題