實現交叉編譯gdb和gdbserver(gdb-7.6)

一書一茶一世界發表於2020-12-24
                       
                   

海思SDK環境下實現:

1、下載gdb:
  下載地址為:http://ftp.gnu.org/gnu/gdb/

2、解壓縮:

  1. tar xvf gdb-7.6.tar.bz2 
3、進入該目錄

cd gdb-7.6

4、配置:(生成makefile)

  1. ./configure --target=arm-hisiv100nptl-linux --program-prefix=arm-hisiv100nptl-linux-  --prefix=/home/usr/gdb-build  

注:--target=arm-hisiv100nptl-linux意思是說目標平臺是執行於ARM體系結構的linux核心;--program-prefix=arm-hisiv100nptl-linux是指生成的可執行檔案的字首,比如arm-hisiv100nptl-linux-gdb,--prefix是指生成的可執行檔案安裝在哪個目錄,這個目錄需要根據實際情況作選擇。如果該目錄不存在,會自動建立,當然,許可權足夠的話。 

5、編譯、安裝

make ;make install

會在--prefix指定的目錄下生成三個子目錄:bin、lib、share,我們需要的arm-linux-gdb就在其中的bin目錄下。

編譯gdb-server

1 cd /gdb-7.6/gdb/gdbserver

2  配置

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

這裡的--host指定了生成可執行檔案執行的平臺和系統:執行於ARM平臺的Linux系統

3 make

編譯生成 gdb-server


gdbserver 遠端呼叫的使用:

1將之前生成的gdbsrver 除錯程式放在目標板上或者通過nfs方式執行也可以.這樣就可以用gdb和gdbserve 來除錯開發板上的程式了.

2 要除錯程式首先在目標板上執行gdbserver 

./gdbserver --remot-debug 192.168.1.100:2345 test

192.168.1.100 為目標板ip地址,2345是開通目標板的這個埠號做為通訊埠.

test 是要除錯的程式(編e 譯好的)

3 在開發板上執行gdb程式

./arm-hisiv100nptl-linux-gdb test

進入gdb 除錯狀態後:

輸入target remote 192.168.1.100:2345


4連線成功後可以除錯程式:

如:輸入 c執行程式.

               
       

相關文章