GDB调试之图形化界面(TUI)

目录

  • 简介
  • 窗口介绍及切换
  • 窗口属性
  • 窗口刷新
  • TUI模式下指令介绍
  • 断点状态显示

简介

TUI(TextUser Interface)为GDB调试的文本用户界面,可以方便地显示源代码、汇编和寄存器文本窗口,甚至可以显示程序及断点运行状态。

备注:本文所有命令均在tui模式下生效

窗口介绍及切换

  1. 窗口介绍

    该模式下有五种窗口

    • (cmd)command 命令窗口. 可以键入调试命令

    • (src)source 源代码窗口. 显示当前行,断点等信息

    • (asm)assembly 汇编代码窗口

    • (reg)register 寄存器窗口

    • split 源码和汇编混合窗口

      上述图片即为split窗口

  2. 窗口切换

    • 使用layout命令打开src/asm/reg/split窗口
    • 使用focus命令切换激活的窗口,可简写为fs
    • 使用TUI快捷键
      • 前置快捷键:ctrl + x 即下列快捷键均需要一起按下ctrl+x后松开,再和下列按键组合
      • 组合键
        1
        2
        3
        4
        5
        
        a     //关闭/打开TUI界面,注意:虽然在进入gdb调试后也能通过该命令打开TUI界面,但是会出现一些异常,建议还是进入GDB的时候加入-tui参数
        1     //使TUI只显示一个窗口
        2     //使TUI显示两个窗口,连续使用该快捷键可在三种窗口之间切换(但同时只能显示两个窗口)
        o     //切换激活窗口,效果类似focus
        s     //在TUI模式和TUISingleKey模式之间切换,这个TUISingleKey模式感觉不大好用😞
        

窗口属性

窗口大小使用winheight调节,单位:行数
例如

1
2
winheight src +5
winheight src -4

窗口刷新

ctrl+l可以刷新窗口,可以避免调试时屏幕混乱

当窗口大小变化而gdb tui窗口未随之变化时,这时候随便输入一下就会刷新过来了,亲测使用ctrl+l刷新后有时会导致显示消失

TUI模式下指令介绍

当进入该模式,方向键和page up/down都编程了翻阅源码的按键,如何浏览或使用上一条gdb指令呢

  • ctrl+p previous 上一条
  • ctrl+n next 下一条
  • ctrl+b back 命令行光标前移
  • ctrl+f forward 命令行光标后移

或者,切换GDB focus的窗口,使其激活cmd窗口,而不是src窗口,这样就和普通模式的GDB操作相同啦

断点状态显示

在tui模式下,能够显示程序执行的状态和断点状态

  • B表示该断点已执行
  • b表示该断点未执行
  • +表示断点使能
  • -表示断点失能

https://kind-ptolemy-135b80.netlify.app/gdb%E8%B0%83%E8%AF%95/gdb%E8%B0%83%E8%AF%95%E4%B9%8B%E5%9B%BE%E5%BD%A2%E5%8C%96%E7%95%8C%E9%9D%A2%EF%BC%88tui%EF%BC%89/

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FreeRTOS是一个开源的实时操作系统,它提供了一套用嵌入式系统的任务调度和管理机制。GDB(GNU Debugger)是一个功能强大的调试工具,可以用于调试C/C++程序。在使用FreeRTOS进行开发时,可以结合GDB进行调试。 要在FreeRTOS中使用GDB进行调试,需要进行以下几个步骤: 1. 配置编译器:首先,需要确保你的编译器支持GDB调试功能。常用的编译器如GCC和Keil都支持GDB调试。 2. 编译选项:在编译FreeRTOS应用程序时,需要添加一些编译选项以支持GDB调试。例如,在GCC中,可以使用"-g"选项来生成调试信息。 3. 连接器脚本:在链接应用程序时,需要使用连接器脚本来指定调试信息的位置。连接器脚本可以告诉GDB在哪里找到符号表和调试信息。 4. 启动GDB调试:在编译和链接完成后,可以使用GDB启动调试会话。可以通过命令行输入"gdb"命令来启动GDB,并使用"target remote"命令连接到目标设备。 5. 设置断点:在GDB中,可以使用"break"命令设置断点。可以设置函数断点、行号断点或地址断点等。 6. 执行调试:一旦设置好断点,可以使用GDB的调试命令来执行程序。可以使用"run"命令来运行程序,使用"step"命令逐行执行,使用"next"命令执行下一行,使用"continue"命令继续执行等。 7. 查看变量:在调试过程中,可以使用GDB的"print"命令来查看变量的值。可以使用"info locals"命令查看局部变量,使用"info global"命令查看全局变量等。 8. 结束调试:当调试完成后,可以使用GDB的"quit"命令退出调试会话。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值