海思GDB + GDB Server調試(適用於小內存設備)

1.簡介

在設備上調試程序的時候,經常使用GDB進行調試,很方便也很容易追蹤到問題所在。但是有些設備內存較小,直接使用GDB經常因爲內存不夠導致GDB無法運行,因此採用GDB + GDB Server這種方式會消耗設備的內存較小,在一些較少內存的設備上,可以使用這種方式進行調試。

2.編譯

2.1 GDB源碼下載

地址:
http://www.gnu.org/software/gdb/download/
目前最新版本爲8.3.1

2.2 GDB編譯

解壓源碼,進入源碼主目錄,使用下面命令編譯:

./configure --target=arm-hisiv500-linux --prefix=/home/gdb/gdb-8.3/__install -v
make
make install

其中:
arm-hisiv500-linux 爲設備的交叉編譯工具鏈
/home/gdb/gdb-8.3/__install 是程序安裝路徑,可以隨意設置
編譯成功後,會在__install/bin下生成arm-hisiv500-linux-gdb可執行程序

2.3 GDB Serve編譯

在主目錄,進入到gdb\gdbserver目錄,使用下面命令進行編譯:

./configure --target=arm-hisiv500-linux --host=arm-hisiv500-linux
make  CC=arm-hisiv500-linux-gcc 

編譯成功後,會在gdb\gdbserver下生成可執行程序gdbserver

3.設備程序編譯

編譯設備程序時候,需要在編譯命令上加上-ggdb選項,同時注意不要使用strip命令來strip編譯好的設備端程序

4.運行

4.1 設備端

將編譯好的gdbserver拷貝到設備上,執行如下命令:

./gdbserver 192.168.22.100:2345 hisi_demo

其中:
192.168.22.100 爲PC的IP
2345 爲端口號
hisi_demo 爲編譯的設備端程序

在PC端的程序運行之後,會在設備上有如下打印:

Remote debugging from host 192.168.22.100, port 46154

4.2 PC

在編譯好的arm-hisiv500-linux-gdb目錄,執行如下命令:

./arm-hisiv500-linux-gdb 
(gdb) target remote 192.168.22.101:2345
(gdb) c(小寫c運行程序)

其中:
192.168.22.101 爲設備的IP
2345 爲端口號

隨後可以使用其它GDB命令進行程序的調試。

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