OpenWrt之GdbServer

Openwrt GNU Debugger(GDB)

第一步

首先make menuconfig, 选择gdb相关选项。

添加 gdb。(可以在路由器开发板调试,空间有限所以不建议)。
Advanced configuration options (for developers) → Toolchain Options → Build gdb

添加 gdbserver
Development → gdbserver 如果位置不一样/搜一下找到对应位置

第二步

在需要调试的包(package)的Makefile增加调试选项
TARGET_CFLAGS += -ggdb3
或者:
单独编译包时
make package/xxxxx/{clean,compile} V=s CONFIG_DEBUG=y

或者:
使能debug选项:make menuconfig
Global build settings > Compile packages with debugging info

第三步

在目标板上(OpenWRT路由)上开启gdbserver
gdbserver :9000 /bin/hellogdb

第四步

在编译主机上开启gdb(假如调试 hellogdb)
./scripts/remote-gdb 192.168.x.x:9000 ./build_dir/target-*/hellogdb/hellogdb

实操

编译烧写固件
make menuconfig 添加gdbserver选项,gdb不选,意义不大。然后编译烧写固件。
在这里插入图片描述
编译安装包
写hellogdb示例并在menuconfig中选中,参考OpenWrt添加软件包之二helloworld实例
这里仿照写为hellogdb
在这里插入图片描述

(上述第二步 一、二种方式都可以,第三种没试过)。
两个Makefile都可以,为测试方便直接以参数形式写入src/Makefile.
在这里插入图片描述
然后menuconfig选中编译
在这里插入图片描述
选为M,不编译进内核
在这里插入图片描述
编译make V=s package/hellogdb/compile如果没有在Makefile中写则make V=s package/hellogdb/compile CONFIG_DEBUG=y
拷贝openwrt/bin/ramips/packages/base/hellogdb_xxx.ipk到路由器安装opkg install hellogdb_*.ipk
然后执行gdbserver :9000 /bin/hellogdb
在这里插入图片描述
主机上执行(注意必须在同一网段)ip为路由器ip./scripts/remote-gdb 192.168.x.x:9000 ./build_dir/target-mipsel*/hellogdb/hellogdb
设置断点 执行下一步:
在这里插入图片描述
成功。注意调试在主机,打印在路由器上。
monitor exit 关闭退出gdbserver

发布了73 篇原创文章 · 获赞 39 · 访问量 6797

猜你喜欢

转载自blog.csdn.net/hzlarm/article/details/103168519