Ubuntu下arm-linux-gdb+gdbserver的編譯及安裝(轉載)

注:arm-linux-gdb的安裝路徑是/usr/local/arm/3.4.1
1arm-linux-gdb的編譯安裝
下載gdb-6.8.tar.bz2至工做目錄
html

gdb源碼下載:http://ftp.gnu.org/gnu/gdb/java

命令以下:linux

$tar -jxvf gdb-6.8.tar.bz2
$cd gdb-6.8
$./configure --target=arm-linux --enable-sim --prefix=/usr/local/arm/3.4.1
--prefix用於指定安裝路徑
es5

$makespa

make時遇到如下錯誤:.net

configure: error: no termcap library founddebug

make[1]: *** [configure-gdb] Error 1調試

make[1]: Leaving directory `/home/lining/gdb-6.8'code

make: *** [all] Error 2orm

解決方法:主要是缺乏termcap庫文件,在終端裏執行sudo apt-get install libncurses5-dev安裝
$sudo make install
完成後能夠在/usr/local/arm/3.4.1/bin下找到arm-linux-gdb文件
2arm-linux-gdbserver的編譯安裝
進入./gdb/gdbserver

命令以下:

$cd gdb/gdbserver./configure --target=arm-linux --host=arm-linux 
$make CC=arm-linux-gcc
(CC=arm-linux-gcc用於指定arm-linux編譯器)
編譯時出現PATH_MAX undeclared錯誤的解決方法:
hostio.c文件中增長
#include <linux/limits.h>
緣由是宏PATH_MAX<limits.h>中沒有定義,而是定義在<linux/limits.h>

(紅色表示我在編譯時沒有碰到這個錯誤,此錯誤是網友整理的,留在這裏以供之後參考)
編譯成功後在當前目錄下會生成gdbserver文件,拷貝至開發板上(可放入開發板/usr/bin/目錄下,這樣在任何目錄下都可執行gdbserver命令)

gdb+gdbserver nfs調試流程

經過NFS啓動系統後,在開發板終端輸入  # mount -t nfs -oonolock192.168.50.72:/opt/FriendlyARM/mini2440/root_qtopia  /mnt/  hello程序放在root_qtopia  下面.hello爲要調試的程序(必須-g加入調試信息)。 

#gdbserver 192.168.50.72:2345 hello  192.168.50.72爲宿主機IP,在目標系統的2345端口(你也能夠設其餘可用的值,固然必須跟主機的gdb一致)開啓了一個調試進程,hello爲要調試的程序(必須-g加入調試信息)。  出現提示:  Process /mnt/hello created: pid=80  Listening on port 2345  (另外一個終端下)  #cd /opt/FriendlyARM/mini2440/root_qtopia   #arm-linux-gdb hello  最後一行顯示:This GDB was configured as 「--host=i686-pc-linux-gnu,--target=arm-linux」...,若是不一致說明arm-linux-gdb有問題  說明此gdb在X86的Host上運行,可是調試目標是ARM代碼。  (gdb) target remote 192.168.50.168:2345  (192.168.50.168爲開發板IP)  Remote debugging using 192.168.50.168:2345  [New thread 80]  [Switching to thread 80]  0x40002a90 in ??()  同時在minicom下提示:  Remote debugging from host 192.168.50.72(gdb)  注意:你的端口號必須與gdbserver開啓的端口號一致,這樣才能進行通訊。創建連接後,就能夠進行調試了。調試在Host端,跟gdb調試方法相同。注意的是要用「c」來執行命令,不能用「r」。由於程序已經在Target Board上面由gdbserver啓動了。結果輸出是在Target Board端,用超級終端查看。鏈接成功,這時候就能夠輸入各類GDB命令如list、run、next、step、break等進行程序調試了。 

參考網址:

1. http://kenter1643.javaeye.com/blog/346894

2. http://blog.csdn.net/chinacodec/archive/2009/02/11/3877901.aspx

3. http://www.5dlinux.com/article/1/2009/linux_31924.html

相關文章
相關標籤/搜索