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命令進行程序的調試。