1. 程式人生 > >開發板上進行gdb除錯

開發板上進行gdb除錯

1、arm-linux-gcc
每一種硬體都有其對應的最好的編譯工具,並不是最新的最好。其實思想很簡單,就是在宿主機(PC)上編譯目標板子上執行的程式。所以工具鏈要用目標板的,這樣去編譯生成可執行的二進位制檔案。這裡有一個工具製作工具鏈,http://www.kegel.com/crosstool/。雖然它可以自動下,還是先下好吧自己,那個速度,呵呵。
2、arm-linux-gdb
(1)到http://www.gnu.org/software/gdb/download/下載gdb包,這個沒有要求,因為它是個軟體,只要用對的工具鏈編譯就OK了。
(2)在本機安裝arm-linux-gdb客戶端。
#tar jxvf gdb-7.2-tar-bz2
#cd gdb-7.2
#./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v(--target配置gdb的目標平臺,--prefix配置安裝路徑)
#make
#make install
這樣arm-linux-gdb的客戶端就安裝到了--prefix所配置安裝路徑裡。
(3)在目標板上安裝gdbserver。(其實就是在宿主機編好了複製過去)
#cd gdb-7.2/gdb/gdbserver
#./configure --target=arm-linux --host=arm-linux(--target=arm-linux表示目標平臺,--host表示主機端執行的是arm-linux-gdb,不需要配置—prefix,因為gdbserver不在主機端安裝執行)
#make CC=/usr/local/arm-linux-gcc-3.4.1/bin/arm-linux-gcc
把生成的 gdbserver 拷貝進目標板,一般在/usr/bin
(4)arm-linux-gdb + gdbserver 除錯。
編譯要除錯的程式   #arm-linux-gcc -g hello.c -o hello
在目標板執行   #gdbserver 10.88.33.14:777 hello (#gdbserver 客戶端IP地址:埠 除錯的程式名)
在客戶機執行   #arm-linux-gdb hello  (我都是在同一個目錄裡進行的,即mount到目標板的那個目錄)
(gdb) target remote 10.88.33.1:777 (target remote 目標板IP地址:埠)
這樣就可以除錯了,結果會在目標版上顯示出,這裡用的minicom。輸入run是會可能提示The "remote" target does not support "run".Try "help target" or "continue".那就用continue吧。


Enjoy!