想要用gdb对OpenWrt进行远程调试。首先得在OpenWrt目标机上安装gdbserver。
1. 安装gdbserver
gdbserver 可以用 ipk 包进行安装。
在OpenWrt的trunk目录下,运行 make menuconfig,进行系统进行裁剪。
gdbserver在 Development 目录下。
将gdbserver选为M,保存退出。
可以打开 .config 进行查看:
可以看到 CONFIG_PACKAGE_gdbserver=m。
好了,再 make V=s 。
编译完成之后,生成 bin/ar71xx/packages/base/gdbserver_7.8-1_ar71xx.ipk 包文件。
将这个文件用 scp 传送到目标机上,进行安装。
[email protected]:~# opkg install gdbserver_7.8-1_ar71xx.ipk Installing gdbserver (7.8-1) to root... Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for gdbserver: * libthread-db * * opkg_install_cmd: Cannot install package gdbserver.
依赖 libthread-db 库。那就先安装 libthread 。安装包是:
trunk/bin/ar71xx/packages/base/libthread-db_0.9.33.2-1_ar71xx.ipk
将其传到目标机上并安装。
然后再安装 gdb-server:
[email protected]:~# opkg install gdbserver_7.8-1_ar71xx.ipk Installing gdbserver (7.8-1) to root... Configuring gdbserver.
好了!安装好了,那就用用看吧。
2. 试用gdbserver
远程调试需要目标机启动 gdbserver并执行调试目标程序。在调试的过程中,gdbserver开启一个TCP服务,由开发机上的gdb连接。之后 gdbserver接收gdb的指令并将指令操作结果反馈给gdb,从而达到了远程调试的目的。
2.1 在目标机上启动gdbserver
[email protected]:~# gdbserver 127.0.0.1:3000 cpp11-demo Process cpp11-demo created; pid = 3335 Listening on port 3000
假设我们要调试的是cpp11-demo程序。
2.2 在开发机上启动gdb
$ gdb (gdb) target remote 192.168.1.2:3000 Remote debugging using 192.168.1.2:3000 warning: while parsing target description (at line 10): Target description specified unknown architecture "mips" warning: Could not load XML target description; ignoring Reply contains invalid hex digit 59
出现问题:(1)首先gdb不认识mips平台。(2)没有XML目标描述文件。
<未完待续>
时间: 2024-11-25 13:23:54