MT7688学习笔记(9)——OpenWrt下使用gdbserver调试

一、简介

在开发linux过程中,当程序代码特别多的时候,很容易就会出现Segmentation fault,这个时候就很让人摸不到头脑,靠打印有时候也找不到,这个时候就可以用gdb试试。

gdb调试有两种方式,一种是远程调试,通过gdbserver远程进行调试,另一种是直接在板子上调试。

通过make menuconfig配置编译后,加了gdb调试的在原来基础上多了1.25M。而gdbserver只有96K,对于FLASH总共才只有8M的路由器来说十分合适。

二、安装gdbserver

  1. 输入make menuconfig,进入配置界面;
  2. 选择Development -> gdbserver,按“Y”选定;


  3. 保存退出;
  4. 修改需要调试程序的Makefile,如(vim package/cpp/src/Makefile),添加CXXFLAGS += -g
  5. 输入make package/cpp/compile V=99,编译名为cpp的程序;
  6. 输入make V=99(有的教程说make V=s,因为我之前失败过所以现在分不清楚,如果V=99不行可以试下s)
  7. 将编译后的bin文件烧入开发板。

二、设置开发板和虚拟机同一网段

  1. 查询开发板IP地址,输入ifconfig,看到lan的IP地址为192.168.100.1
  2. VMware菜单选择“编辑”-->“虚拟网络编辑器”-->VMnet0桥接模式-->桥接到PC机的无线网卡


  3. VMware菜单选择“虚拟机”-->“设置”-->“网络适配器”-->桥接模式及勾选框


  4. PC机连接开发板的wifi


  5. 查询虚拟机IP地址,输入ifconfig,看到eth0的IP地址为192.168.100.152
  6. 至此,开发板IP:192.168.100.1
    虚拟机IP:192.168.100.152

三、运行gdbserver

开发板中输入gdbserver 192.168.100.1:3000 (+调试程序名)

三、运行gdb

  1. 虚拟机中找到mipsel的gdb


  2. 输入./mipsel-openwrt-linux-gdb
  3. 输入target remote 192.168.100.1:3000
    虚拟机中显示:

    开发板中显示:
  4. 输入file (+需调试程序)
  5. 输入c
  6. 开发板上开始执行程序


四、gdb常用命令


• 由 Leung 写于 2018 年 11 月 5 日

• 参考:OpenWRT开发之——远程debug
    openwrt下编译及使用gdb调试
    gdbserver调试
    gdbserver 远程调试问题:设置文件和so搜索路径
    GNU Debugger
    Openwrt 远程调试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学习stm32gpio 学习linux 程序员的三大方向 程序员的方向,一般可以分为3类:专业领域、业务领域、操作...
    王公民阅读 4,233评论 0 3
  • 姓名:吴兆阳 学号:14020199009 转自韦东山 嵌牛导读:对嵌入式初学者,没有足够的视野选择一个合适投入方...
    吴兆阳阅读 7,020评论 0 4
  • 突然找到一些方向,所以意外遇到了你。 学习英语,减肥,写东西。
    花开下一季smlie阅读 1,215评论 0 0
  • 造纸领域最让人头疼的就是制造纸张时洗涤阶段的泡沫最为严重,当产生的泡沫得不到很好的控制,会导致液体的飞溅...
    1a66028e1490阅读 3,081评论 0 0
  • 在卫生间和她一起洗澡的时候,一声响亮的口哨声,着实把我吓了一跳! “谁?!”我环顾四周,答案是肯定的。 她咯咯地笑...
    小云的作业阅读 7,136评论 0 4