2014-09-04 168 views
4

我正在開發一個嵌入式Linux應用程序,我想用GDB來調試它。問題是,儘管Kit配置看起來很好(Debugger選項正確指向與設備的GCC對應的GDB--設備是Linux ARM),但當我要求Qt Creator在調試模式下運行時,它會返回錯誤「應用程序輸出」:如何使用Qt Creator中的GDB進行遠程調試?

sh: gdbserver: not found 

這似乎很奇怪,因爲我悲傷,配置很好,沒有關於該錯誤是由Qt Creator的在開始調試模式之前的任何時刻報道。

我在網上做了一些研究,找到哪些是使用GDB從Qt Creator內部調試嵌入式Linux應用程序的確切步驟(使用斷點等),最接近我得到的答案是this commentary由Tobias飢餓:

您將需要對您的主板安裝 這個工作ssh和gdbserver的。然後,您需要在 創建者中設置您的板[qt-project.org]。之後,您需要使用此設備使用 設置套件[qt-project.org]。

這些步驟,思想,我不明白。

  • 首先,如果套件應該指向我的本地GDB,爲什麼我需要在設備內部有一個GDB?
  • 或者它不應該?
  • 無論如何我會把GDB放在哪裏?
  • 如何知道我的設備上是否有此ssh
  • 如果我不這樣做,我該如何安裝它?
  • 所有其他提到的步驟已經完成,但與位於桌面Ubuntu上的GDB相關。我應該改變一些東西,如果我做了上述步驟?

當然,這本手冊是否是我的托比亞斯完成的,還是我需要爲此做些其他的工作?

回答

5

你需要在你的Ubuntu gdbsshgdbserversshd您的設備上:其實當你使用QtCreator在遠程設備上部署一個項目,它利用ssh用於複製到目標文件,然後啓動gdbserver上該設備(連接到您要調試的可執行文件),然後在您的Ubuntu上啓動gdb,並連接到設備上正在運行的gdbserver

所以你需要他們所有人來使事情工作。

sshgdb只需通過apt-get即可安裝到您的Ubuntu上。相反,在您的主板上安裝sshdgdbserver是特定於平臺的:可能有些主板已經將它們放入標準系統映像中,或者在某些情況下由您來安裝它們......如果您的Linux發行版在板上有一些軟件包管理器,那麼你可能會嘗試使用它...在最壞的情況下,你將不得不自己編譯它們,並手動安裝它們。

+0

感謝您的回覆;很好的回答!唯一的問題是我無法找到這個'gdbserver'的下載鏈接; Google中的大多數結果只指向'GDB',甚至維基百科網頁上的結果也不指向存儲庫或下載鏈接。那麼,我如何/在哪裏可以下載我的嵌入式Linux? – Momergil 2014-09-05 14:08:33

+0

當然,我正在討論一個'gdbserver'來編譯並安裝在我的嵌入式Linux設備上;將它安裝到我的臺式計算機上是可以的Synaptic(並且,在這種情況下,它已經安裝,它仍然沒有按預期工作) – Momergil 2014-09-05 14:37:27

+0

好吧,最後我確實設法進行遠程調試:)與我所做的唯一區別你的回答是我不需要爲我的外部設備專門編譯'gdbserver';我只是使用了'linux-devkit'附帶的那個來編譯我的應用程序到設備上,並將它複製到我的嵌入式Linux的'/ usr/bin /'目錄下('chmod + x'需要)。 – Momergil 2014-09-05 17:03:27