gdb 调试环境搭建

优质
小牛编辑
131浏览
2023-12-01

1、在openwrt目录下,运行 make menuconfig,进行系统进行裁剪

• 首先,make menuconfig --> Development --> gdb 和 gdbserver 都选上

• 然后 Advanced configuration options --> Toolchain optian --> Debuggers 选中gdb2、编译: make V=s -16

3、在openwrt/bin/leo-gx8010-ssd-1v-glibc/packages/base 目录下面会生成 gdbserver_7.11-1_leo.ipk 、libthread-db_2.22-1_leo.ipk两个ipk文件

4、通过scp把gdbserver_7.11-1_leo.ipk 、libthread-db_2.22-1_leo.ipk两个ipk文件 传递到开发板

如下是我操作的命令:5、在开发板上面安装gdbserver_7.11-1_leo.ipk 、 libthread-db_2.22-1_leo.ipk两个ipk文件,使用opkg安装

(1)、先安装libthread-db_2.22-1_leo.ipk,因为 libthread-db_2.22-1_leo.ipk是安装gdbserver所需要的库文件

安装命令:opkg install libthread-db_2.22-1_leo.ipk

#如果直接先安装gdbserver_7.11-1_leo.ipk会出现如下提示#如果安装libthread-db_2.22-1_leo.ipk出现如下错误请重新裁剪和编译,在把两个ipk文件重新重新传输和安装

(2)、安装gdbserver_7.11-1_leo.ipk

  安装命令:opkg install gdbserver\_7.11-1\_leo.ipk

6、调试gdbserver

   可以参考:https://blog.csdn.net/zhoyixing/article/details/46010423

(1)、准备好测试代码:

#测试代码的目录随意目录下面

#编译代码需要使用arm-交叉编译工具链编译,不能用gcc编译,否则开发板不能运行

如下是我这边的处理方法:

【1】配置交叉编译工具链:把openwrt/staging_dir 里面的 toolchain-arm_cortex-a7+neon_gcc-5.3.0_glibc-2.22_eabi 下面拷贝 到/opt 下面

【2】 mytest 目录下面env.sh:makefile:#注意gdb调试一定需要-g编译

在编译前先更新一下环境变量: source ./env.sh

(2)、把生成的可以行文件通过scp拷贝到开发板中,在openwrt/build_dir/target-arm_cortex-a7+neon_glibc-2.22_eabi新文件夹hello,然后生成把可执行文件拷贝到这个文件下面

(3)远程调试启动方式开发板:

我是把可执行文件拷贝到了/usr/bin 下面了

执行命令:gdbserver :9000 /usr/bin/hello Adjustment BarrierBreaker Calmer

结果:ubuntu【本地电脑】:

我是把文件拷贝到了:openwrt/build_dir/target-arm_cortex-a7+neon_glibc-2.22_eabi/hello下面

执行命令:

./scripts/remote-gdb 192.168.1.235:9000 ./build_dir/target-arm_cortex-a7+neon_glibc-2.22_eabi/hello/hello

结果:(4)gdb调试指令:

具体命令参考:https://blog.csdn.net/liigo/article/details/582231参考的文档:

https://blog.csdn.net/zimiao815/article/details/51312813

https://my.oschina.net/hevakelcj/blog/416394

https://my.oschina.net/hevakelcj/blog/416225

https://blog.csdn.net/zhoyixing/article/details/46010423