移植gdb到DM368 IPNC中 linux arm gdb

移植gdb到嵌入式的ipnc中,大多數人習慣使用printf調試,但是遇到像”segment fault“這的錯誤也是後就很難定位,這時候gdb的作用就體現出來了

在pc使用gdb調試應用程序前,應用程序編譯是需帶上 gcc -g參數,就是編譯帶有調試信息的程序,不然使用gdb是找不到程序的symbol的

在arm中使用gdb也不例外,也要加上arm_v5t_le-gcc -g參數,只不過,arm上linux不同於pc,嵌入式的gdb採用這樣的調試方式:

在arm中運行gdbserver

在pc上運行gdbserver對應的arm-linux-gdb,這樣的方式來調試程序。

所以的調試操作均在pc上完成,但是程序的輸出還是在arm上。


現在來移植gdb到dm368上

1、下載gdb源碼,目前的最高版本的gdb-7.5,下載地址:http://www.gnu.org/software/gdb/download/

2、解壓到合適的文件夾下,注意不要放到window與linux共享的目錄下即可:tar -xvzf gdb-7.5.tar.gz

3、進入gdb-7.5源碼目錄,然後配置編譯arm-linux-gdb

我的配置是這樣的:./configure --target=arm-linux --prefix=/opt/dm36x/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/gdb-7.5 -v

target是指編譯的目標平臺

prefix是指安裝編譯好的程序目錄,我將它安裝到arm_v5t_le工具鏈的目錄。

這裏注意了,現在配置編譯的不是gdbserver,而是gdbserver對應的需要運行在主機pc上的arm-linux-gdb,雖然linux上已經有gdb命令,但是這個gdb命令式沒法跟gdbserver交互的。

編譯成功後會在prifix設定的目錄下產生arm-linux-gdb可執行程序,如圖


target_board 和readme是我自己創建的。

4、進入gdb-7.5/gdb/gdbserver目錄,配置,然後交叉編譯運行在arm上的gdbserver

4.1在交叉編譯gdbserver之前,先進行一些設置:

添加剛纔編譯好的arm-linux-gdb到PC linux的PATH中

PATH="/opt/dm36x/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/gdb-7.5/bin:$PATH"

4.2配置

./configure --target=arm-linux --host=arm-linux

4.3修改config.h

編譯是會產生一個錯誤,說找不到sys/reg.h

所以這裏修改一下config.h,不要去使用reg

#vim config.h
//#define HAVA_SYS_REG_H //註釋此句

4.4交叉編譯

make CC=arm_v5t_le-gcc

5、將交叉編譯好的gdbserver複製到目標文件系統的/usr/locaol/bin目錄下,其他地方也可以,只要能在shell中找到gdbserver即可


測試:

1、隨便寫一個c文件,然後編譯

arm_v5t_le-gcc -g test.c

得到a.out,複製到目標文件系統中

2、在目標板上執行

gdbserver 192.168.1.227:1234 a.out

192.168.1.227爲目標板ip地址,1234是沒有被佔用的tcp端口

意思就是創建一個調試服務器,一邊主機pc上的arm-linux-gdb能夠連接這個服務器來調試a.out

3、在主機pc上執行

arm-linux-gdb a.out

然後在gdb的shell中輸入

target remote 192.168.1.227:1234

連接成功後目標板上會打印連接信息,如圖


至此,就可以按照通常gdb的命令調試程序啦

附錄1:調試時出現的警告

warning: `/lib/libc.so.6': Shared library architecture unknown is not compatible with target architecture arm.
warning: Could not load shared library symbols for /lib/ld-linux.so.3.
Do you need "set solib-search-path" or "set sysroot"?

忽略,目前沒有發現影響什麼。

附錄2:gdb調試手冊和gdb調試命令的pdf下載,這兩篇是我在網上找的,覺得比較好

gdb調試手冊:http://www.kuaipan.cn/file/id_48923272389085122.html

gdb調試命令:http://www.kuaipan.cn/file/id_48923272389085121.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章