OpenWRT开发之——远程debug

想要用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

OpenWRT开发之——远程debug的相关文章

HBase二次开发之搭建HBase调试环境,如何远程debug HBase源代码

版本 HDP:3.0.1.0 HBase:2.0.0 一.前言 之前的文章也提到过,最近工作中需要对HBase进行二次开发(参照HBase的AES加密方法,为HBase增加SMS4数据加密类型).研究了两天,终于将开发流程想清楚并搭建好了debug环境,所以就迫不及待地想写篇文章分享给大家. 二.思路 首先看到这个需求,肯定是需要先实现HBase配置AES加密<HBase配置AES加密>,或者还可以再继续了解实现SMS4加密算法<Java版SMS4加密解密算法>.等到这些都完成之后

OpenWrt 开发版本主trunk MT7620N 无线驱动bug

环境: OpenWrt Development Trunk: svn co svn://svn.openwrt.org/openwrt/trunk/ BUG: 1. 无线无法建立连接. 2. 无线建立连接获取IP地址失败,断开连接. 出现问题的时候会伴随以下dmesg [ 3702.380000] ieee80211 phy0: rt2x00queue_write_tx_frame: Error - Dropping frame due to full tx queue 2 [ 3702.390

Eclipse 远程debug 调试

远程debug需要修改文件: 环境windows开发 1.tomcat中的apache-tomcat-6.0.26\bin下的catalina.bat文件中添加:set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8989 加在catalina.bat文件中位置:goto setArgs   :doneSe

idea下远程debug配置

一. 背景: 在测试工作中,为方便发现代码中的逻辑问题,尝试使用远程debug模式,在测试过程中走查代码,不仅可以辅助测试减少与开发的沟通成本,更便于了解业务提升测试深度. 二. 配置方式: 1. 调试的配置方式主要为设置JVM的参数,使之工作在debug模式下,常用参数为: -Xdebug -Xrunjdwp:transport=dt_socket,address=8012,server=y,suspend=n 2. 服务器端配置: 若项目为web项目,可在tomcat的启动程序如catali

jboss 远程debug

Jboss远程debug技术在网上有很多,主要是下面的做法 JBoss服务器的启动方法: 假设JBoss的安装目录为$JBOSS_HOME,Windows以及Linux环境下的Debug模式的启动方法分别为: Windows环境: 找到Windows下的JBoss的启动文件:run.bat,查找8787,可以找到如下一句: rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

设置tomcat远程debug

查看端口占用情况命令: netstat -tunlp |grep 8000 tomcat 启动远程debug: startup.sh 中的最后一行 exec "$PRGDIR"/"$EXEXUTABLE" start "[email protected]"中的start修改成 jpda start ,默认的调试端口是8000 ,可以在catalina.sh 文件中设置JPDA_APPDESS=8000 使用startup.sh 或者catalin

远程debug调试java代码

远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAVA_OPTS参数,然后本地通过Eclipse或IDEA等工具调试. 下面简单介绍下理论. 理论 JPDA(Java Platform Debugger Architecture)是Java平台调试体系结构的缩写.由3个规范组成,分别是JVMTI(JVM Tool Interface),JDWP(Ja

Tomcat添加远程debug端口

在/tomcat/bin/catalina.sh 中添加: CATALINA_OPTS='-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18090' 其中address所对应的值是远程debug端口号 如图:

远程debug Tomcat工程

1.登陆环境,修改环境中tomcat中的配置文件,主要修改tomcat下bin文件夹中的catalina.sh和startup.sh 步骤(1): catalina.sh文件修改: 在该文件的第一行添加如下内容: JPDA_ADDRESS=15888 15888为端口号 步骤(2): startup.sh文件修改: 在该文件中最后一行修改如下内容: exec "$PRGDIR"/"$EXECUTABLE" jpda start "[email protec