日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

移植gdb到DM368 IPNC中 linux arm gdb

發布時間:2023/12/9 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 移植gdb到DM368 IPNC中 linux arm gdb 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From: http://blog.csdn.net/ghostyu/article/details/8081897

移植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


總結

以上是生活随笔為你收集整理的移植gdb到DM368 IPNC中 linux arm gdb的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。