新的版本對環境的要求要高點,如果出錯了可以嘗試更換舊點的版本,我使用的版本是 gdb-7.8.1.tar.gz。
arm-linux-gdb屬於除錯程式,主機可以通過執行該程式開啟arm可執行檔案。一開始照著網上的教程來操作,理想情況.configure、make、make install三步到位,實際情況是引數換了好幾組,make始終會報error。他們的思路是通過gdb原始碼配置->編譯->生成arm-linux-gdb
,我失敗的原因可能是交叉編譯工具鏈不適合此操作,當我檢視工具鏈的時候,發現工具鏈本身自帶乙個arm-linux-gdb
程式!那我就沒必要再去自己編譯生成乙個了。如果工具鏈沒有這個程式再去考慮編譯安裝,可以參考這篇文章。
gdbserver執行在arm開發板中,生成步驟:
cd gdb-7.8.1/gdb/gdbserver/
./configure --target=arm-linux --host=arm-linux
make cc=arm-linux-gcc
引數含義:
--target 指定了目標機交叉編譯器字首
--host 指定了編譯後的程式需要在**執行
cc=arm-linux-gcc 用來指定交叉編譯工具為arm-linux-gcc,需要根據你自己的來指定。
這個過程一般不會出錯,執行完命令後會在該目錄下生成乙個gdbserver
可執行檔案,將該檔案拷貝到開發板的/usr/bin
目錄下,方便呼叫。這裡需要注意的是執行gdbserver還需要libthread_db庫,若你自己做的檔案系統內沒有這個庫的話需要將本地交叉編譯工具中的libthread_db*拷貝到開發板的/usr/lib
中去。
arm-linux-gcc -g用於編譯出含有gdb除錯資訊的可執行檔案。
arm端執行如下內容,gdbserver 本地ip+埠號+可執行檔案
通過簡單的設定斷點、執行來觀察資訊,可以看到已經能夠gdb除錯了。
gdbgui -g arm-linux-gdb test(test為要除錯的可執行程式)
嵌入式的gdb除錯
在開發過程中有很多問題如果用gdb進行除錯跟蹤會大大提高效率,但是我發現不少同事對於gdb除錯概念比較模糊,特別是跨平台的除錯,以至於放棄用gdb除錯而影響排除bug的效率。因此我這裡主要對跨平台除錯做乙個簡要的說明。我們對機頂盒上的軟體進行除錯主要有兩種方式,本地除錯和遠端除錯。遠端除錯還有乙個問...
嵌入式系統 GDB除錯
心得體會 gdb gdb全稱 gnu debugger,是gnu工程為gnu作業系統開發的偵錯程式。它可以用於除錯c c objective c pascal ada等語言編寫的程式。被除錯的程式可以跟gdb執行於同一臺電腦,也可執行於不同電腦。file 裝入想要除錯的可執行檔案 kill 終止正在...
嵌入式LINUX偵錯程式GDB
一 偵錯程式gdb簡介 功能 gdb是gnu發布的一款功能強大的程式除錯工具。功能 啟動被除錯程式 讓被除錯的程式在指定的位置停住 設定斷點 當程式被停住時,可以檢查程式狀態。二 偵錯程式gdb的使用 1.gcc gdemo.c o demo gdb demo 2.run 啟動被除錯程式 list ...