首页 > 其他 > 详细

OpenWRT开发之——远程debug

时间:2015-05-18 21:16:53      阅读:292      评论:0      收藏:0      [点我收藏+]

想要用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 传送到目标机上,进行安装。

root@OpenWrt:~# 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:

root@OpenWrt:~# 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

root@OpenWrt:~# 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目标描述文件。


<未完待续>

OpenWRT开发之——远程debug

原文:http://my.oschina.net/hevakelcj/blog/416394

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!