热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenWrt之GdbServer

OpenwrtGNUDebugger(GDB)第一步首先makemenuconfig,选择gdb相关选项。添加gdb。(可以在路由器开发板调试,空间有限所以不建

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 STRIP=/bin/true CONFIG_DEBUG=y

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

第三步

将编译好的固件传到目标板上,并安装。

tftp -gr gdbserver_8.3.1-1_mipsel_24kc.ipk 192.168.5.55
tftp -gr xxx.ipk 192.168.5.55opkg install gdbserver_8.3.1-1_mipsel_24kc.ipk
opkg install xxx.ipk

第四步

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

gdbserver --once --remote-debug :9000 /usr/bin/hellogdb

第五步

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

./scripts/remote-gdb 192.168.5.84:9000 ./build_dir/target-mipsel_24kc_musl/xxx/xx

实操

编译烧写固件
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


推荐阅读
  • Howtobuilda./configure&&make&&makeins ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • charles3.11.1抓https包
    结论先行:用的是安卓测试机,没加固之前的生产环境的安装包,可以抓到https请求加固之后的包【也就是要上应用市场的包】,抓不到https请求电脑上的操作:1.安装证书【电脑上安装了 ... [详细]
  • Pico Neo 3教程☀️ 六、项目的配置总结及交互开发
    文章目录🟥SDK的导入和项目的设置1️⃣项目的部分配置2️⃣PlayerSettings设置✨将项目切换到Gamma颜色空间✨MinimumAPILevel ... [详细]
  • vsCode配置通过Github同步(Settings Sync)
    vsCode配置通过Github同步(Settings Sync) ... [详细]
  • 在windows7中安装sqlserver2005中碰到的问题1.iis检测失败的解决办法控制面板-》程序和功能-》打开或关闭windows功能-》打开IISFeatures,点左 ... [详细]
  • linux下的mesa一般版本比较低,按照高版本mesa1.下载代码下载路径:https:www.mesa3d.org用git下载容易失败。用Downl ... [详细]
author-avatar
小虎
每一天,不管用什么方式,我都要变得越来越好!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有