使用gdb调试流程

一、下载gdb源码

下载地址:Index of /gnu/gdb

二、gdb编译

1、解压源码包(根据后缀,选择合适的解压方式)

$ tar zxvf gdb-7.12.tar.gz

$ cd gdb-7.12/

2、生成Makefile

$ ./configure --target=aarch64-linux-gnu --prefix=$PWD/__install

–target:指定目标平台。–prefix:指定安装路径

3、编译并安装

$ make

4、安装

$ make install

执行此命令后会在当前目录下生成文件夹__install/里面包含可执行文件、头文件、动态库文件等.

目前只用到bin/目录下的可执行文件arm-linux-gdb,执行下面命令:

$ sudo cp __install/bin/arm-linux-gdb /usr/bin/

将生成的aarch64-linux-gnu-gdb文件拷贝到系统/usr/bin/目录下,这样便可以在任何地方很方便的调用。

三、gdbserver编译

板端需要gdbserver

1、生成Makefile

$ cd gdb/gdbserver/

$ ./configure --target=arm-linux --host=aarch64-linux-gnu

–host:指定交叉工具链,aarch64-linux-gnu为我的目标系统的交叉工具链。

2、编译

$ make

编译gdbserver不需要执行make install命令,make之后在当前目录下会生成可执行程序gdbserver,将其拷贝到目标系统中。

四、调试

1、编译要调试的程序

$ aarch64-linux-gnu-gcc -g test.c -o test

为了能够gdb调试,在编译程序的时候必须加-g选项,将生成的可执行文件test拷贝到目标板中。

2、环境配置

宿主机IP:192.168.0.139

目标板IP:192.168.0.138

3、板上运行gdbserver

# cd /

# gdbserver 192.168.0.139:6666 /test

4、pc机上运行aarch64-linux-gnu-gdb

$ aarch64-linux-gnu-gdb test

5、启动之后,最后一行会出现(gdb),等待输入指令,连接gdbserver

(gdb) target remote 192.168.0.138:6666

五、问题及解决办法

库文件加载失败

解决办法:指定加载失败的库文件的路径

(gdb) set solib-search-path /home/zxd/MerriiLinux_qa1_qe1/boot/config/gcc-linaro/arm-linux-gnueabi/libc/lib/

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值