本文主要是介绍海思GDB + GDB Server调试(适用于小内存设备),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.简介
- 2.编译
- 2.1 GDB源码下载
- 2.2 GDB编译
- 2.3 GDB Serve编译
- 3.设备程序编译
- 4.运行
- 4.1 设备端
- 4.2 PC
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命令进行程序的调试。
这篇关于海思GDB + GDB Server调试(适用于小内存设备)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!