參考:
如果第一次配置錯誤,導致編譯失敗,重新修改配置後,可能還是不能生成正確的makefile檔案,提示類似
「 target_alias' has changed since the previous run」的資訊,具體不計的了
可能需要重新刪除**重來
設定環境變數
$ sudo vi /etc/profile
在末尾新增export path=$path:/usr/local/arm-gdb/bin,儲存
$ source /etc/profile(使環境變數生效)
4、生成gdbserver
$ cd /opt/gdb-7.3.1/gdb/gdbserver
$ ./configure --target=arm-linux --host=arm-linux
--target=arm-linux表示目標平台,
--host表示主機端執行的是arm-linux-gdb
$ make cc=/usr/local/arm/4.3.2/bin/arm-linux-gcc (必須用arm-linux-gcc 注可以是
arm-none-linux-gnueabi-gcc,根據自己的編譯器需要進行修改)
把gdbserver拷貝到開發板/usr/local/debug目錄下
5、除錯
假設生成的程式為hello,開發板ip為192.168.1.10,主機ip192.168.1.3
開發板:
將hello拷貝到開發板上/usr/local/debug目錄下
並執行./gdbserver 192.168.1.3(此ip是除錯主機的ip):10000(此埠和主機上的埠要一致) hello
process hello created;pid=1153
listing on port 10000
在主機上:
/usr/local/arm-gdb/arm-linux-gdb hello
(gdb)target remote 192.168.1.10(此ip是開發板的ip):10000(此埠和開發板的埠要一致)
此時,開發板的輸入會有類似如戲資訊
remote debugging from 192.168.1.3
然後就可以在提示(gdb)下輸入gdb命令進行除錯了
退出gdb命令是輸入quit
附錄:1)若make時遇到錯誤:「configure: error: no termcap library found」
則需要安裝庫:sudo apt-get install libncurses5-dev,然後重新make
2)拷貝gdbserver前,可用arm-linux-strip命令將gdbserver除錯符號資訊刪除
3)在安裝arm-linux-gcc時,在/usr/local/arm/4.3.2/bin目錄下已經有arm-linux-gdb
可以先刪除該目錄下的所有gdb:$ sudo rm *gdb*
以便使用新編譯的arm-linux-gdb
gdb的編譯 使用
2解壓 xd d gdb 8.2.tar.xz tar xvf gdb 8.2.tar.gz 3新建build資料夾 mkdir build 4配置 cd build gdb 8.2 configure prefix opt gdb prefix opt gdb表示在make install的時候,...
使用gcc編譯gdb除錯
在linux系統中,預設是沒有安裝gcc編譯器的,可以通過命令 rpm q grep gcc 來檢視。安裝命令為 yum y install gcc 安裝後,編寫乙個.c結尾的檔案。gcc test.c 就會預設輸出乙個a.out的輸出檔案,這個輸出檔案就是可執行檔案。如果加上 o選項,則可以自定目...
交叉編譯GDB
gdb是一款強大的除錯工具,不多介紹了 解壓檔案tar xf gdb 7.9.tar.gz配置編譯 編寫編譯指令碼 bin bash configure cc opt mipsel gcc472 glibc216 mips32 bin mipsel linux gcc enable static c...