開發板上如何使用GDB

2021-06-06 00:25:10 字數 1461 閱讀 8994

嵌入式linux的gdb除錯環境由host和target兩部分組成,host端使用arm-linux-gdb,target board端使用gdbserver。除錯時,應用程式在嵌入式目標系統上執行,而gdb除錯在host端。

一、編譯安裝gdb+gdbserver

$tar xvzf gdb-6.6.tar.gz

$mkdir mygdb

$cd mygdb

必須要在你想要安裝的目錄下執行下邊的命令。

$../gdb-6.6/configure --target=arm-linux   \ --prefix=/home/a/mygdb

引數說明:target是你的目標板,我的是arm-linux,prefix是你要安裝的目標資料夾。

$make

$make install

然後建立gdbserver。

$mkdir mygdbserver

$cd mygdbserver

$chmod +x ../gdb-6.6/gdb/gdbserver/configure

$cc=arm-linux-gcc ../gdb-6.6/gdb/gdbserver/configure \

--host=arm-linux  --prefix=/home/a/mygdbserver

$make

$make install

$arm-linux-strip gdbserver

去除除錯資訊。不去好像不行,我的就不行,去了就ok了。

複製到你的開發板上就可以了。

二、除錯步驟

1、交叉編譯,帶引數-g加入除錯資訊。

假設要除錯的程式為test.c。

#arm-linux-gcc -g test.c -o test

2、在target board開啟gdbserver

#gdbserver  :2345 test

gdbserver開始監聽2345埠(你也可以設其他的值),然後啟動test,你會看到「process test created:pid=88」

3、回到host端

#arm-linux-gdb test

最後一行顯示:this gdb was configured as 「--host=i686-pc-linux-gnu,--target=arm-linux」...

說明此gdb在x86的host上執行,但是除錯目標是arm**。

(gdb)target remote :2345

注意:你的埠號必須與gdbserver開啟的埠號一致,這樣才能進行通訊。

建立鏈結後,就可以進行除錯了。除錯在host端,跟gdb除錯方法相同。注意的是要用「c」來執行命令,不能用「r」。因為程式已經在target board上面由gdbserver啟動了。結果輸出是在target board端,用超級終端檢視。

4、退出gdb:

(gdb)quit

這時就可以除錯目標板上的程式了

GDB 在arm開發板上的遠端除錯

嵌入式linux的gdb除錯環境由host和target兩部分組成,host端使用arm linux gdb,target board端使用gdbserver。除錯時,應用程式在嵌入式目標系統上執行,而gdb除錯在host端。一 編譯安裝gdb gdbserver 這是我的編寫的編譯指令碼 bin ...

如何選擇開發板和保護開發板

1.開發板分為入門學習用的和評估用的。學習用的,對於新手入門用的。首先資料得多,比如三星s3c2440,這款晶元雖然已經停產了,但是作為入門來說,非常好。也有中文資料手冊,相關資料很多。當初我買開發板以看晶元效能來買的,結果到手後,資料很少,學不進去,最後只好又買了個2440的開發板。一般而言,ti...

gdb遠端除錯目標開發板

本筆記基於韋東山的教程,目的通過gdb去除錯目標板上核心的執行。1.確保三者能夠ping通。2.修改目標板uboot命令引數 為3.輸入命令 nfs 0x31000000 10.196.169.work nfs root uimage bootm 0x31000000 使用命令之前把linux核心放...