码迷,mamicode.com
首页 > 其他好文 > 详细

OpenWRT开发之——远程debug

时间:2015-05-18 21:18:00      阅读:887      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!