gdb调试技巧之TUI之下的变量查看

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

我们在用gdb进行c语言调试时,为了查看源程序,了解程序执行位置,一般都会用tui模式,即:

gdb -tui xxxxxx

在tui模式下,用户界面分为上下两个窗口,上面为src窗口,下面为cmd窗口。缺省焦点在src窗口,方向键可以控制源代码的滚动。

可以用focus命令控制焦点位置:

focus cmd 命令将焦点切换到cmd窗口

focus src命令将焦点切换到源代码窗口

焦点切换到cmd窗口后,可以使用方向键回滚命令输入和进行命令编辑。

但无论焦点在那个窗口,tui模式下是没有复制粘贴功能的。这时如果需要查看变量需要手工敲完整的变量名,当c语言定义了比较复杂的结构时,需要了解结构中那些动态分配内存的变量情况就变得很麻烦。不过我们知道,Linux下命令行终端是有复制粘贴能力的,如果我们使用命令行终端本身的复制粘贴功能,就可以从别的编辑窗口拷贝复杂的结构了。

为了使用命令行终端的复制粘贴功能,我们可以使用gdb提供的快捷键ctl+x+a退出tui模式,待查看完变量后再用同样的快捷键返回tui模式即可。这样可以免去手工敲击大量字符之苦。

另外,gdb还有一个非常实用的命令update,当你在src窗口使用上下键翻看源代码后,想要回到当前正在执行的那行代码,可以使用这个命令。

如果程序调试过程中有打印输出,会破坏窗口的整体形状,这是可以使用ctrl+l来恢复窗口的整洁状态。

另附:gdb多线程调试相关命令

info threads 查看当前所有可以调试的线程

thread xx 切换到xx线程,xx为info thread 命令看到的第一列id

set scheduler-locking on 只运行当前线程

set scheduler-locking off 运行所有线程

thread apply xx n 命令线程xx执行n命令

thread apply xx b perfthread.c:196  设置线程断点到perfthread.c文件的196行

GDB调试TUI界面 官方:http://www.deansys.com/doc/gdbDebugging/gdb_23.html         ​TUI(TextUser Interface)为GDB调试的文本用户界面,可以方便地显示源代码、汇编和寄存器文本窗口,TUI使用效果如下图所示。     Tui界面可以通过运行gdbtuigdb-tui命令进入(其它变种gdb也一样,如arm- 阅读详情

相关推荐

GDB调试器的文本用户界面 GDB TUI

新进转入linux阵营,在使用gdb时极为怀念VS2005的一些优异多窗口界面功能,偶然无意键入win命令,发现了TUI功能,个人觉得TUI对提高gdb调试效率大有助益,但是好像有些使用gdb经年的人也没注意到这功能,可能是因为不是每个人都有空通读gdb手册,此处摘录手册TUI段,源自http://sourceware.org/gdb/onlinedocs/gdb_23.html,加上本人注2

kuike的专栏 6245

GDB / TUI 模式

gdb 默认是命令行模式,需要显示部分代码时,使用“list”命令,默认显示当前行上下一共10行的代码,如果想增加显示的行数,可以通过命令 list (+-)n,n 为行数。 这种方法简单有效,就是不方便,有种方法可以时时查看变量内容,那就是 TUI 模式。 TUI 模式全称:Text User Interface 。 使用方法是启动的时候,加入 -tui,即: gdb main.o -tui 也可以运行的过程中,执行 Ctrl + x + a,完成 tui 模式的打开和关闭。 结果如图所示:

布袋和尚 2608

GDB调试内核 常用指令

2、查看内存管理信息 查看当前系统​的​内存信息​: cat /proc/meminfo 查看​NUMA​节点的内存信息​: numactl -H 查看​NUMA​节点的内存分布​: cat /sys/devices/system/node/node*/meminfo 查看​NUMA​节点的内存使用情况​: cat /proc/zoneinfo 查看​NUMA​节点的内存访问延迟​: numactl --show 查看​NUMA​节点的内存分配策略​: cat /proc/sys/vm/numa_balan

qq_45652092的博客 1010

GDBTUI模式(文本界面)

2023年9月22日,周五晚上今晚在看GDB的官方文档时,发现GDB居然有文本界面模式。

m0_61629312的博客 987

GDB TUI 界面调试

gdb调试一直是一个让人头疼的问题,我这个多年的linux用户也一直不习惯gdb,主要是因为gdb调试的时候不能很好的展示源码。gdb里面可以用list命令显示源码,但是list显示没有代码高亮,我忍了,可是list这种显示代码的方式,使得我总不能一眼定位到正在执行的那行代码。 可以毫不夸张的说,这个问题是阻止我长期使用gdb的最大的障碍。这是如此的不便,以至于GNU都想办法解决了————使用...

勤学如春起之苗,不见其增,日有所长! 辍学如磨刀之石,不见其损,日有所亏! 4888

gdb, 如何启用调试窗口

启用 TUI 模式后,您将在 GDB 中看到一个分割窗口,其中一个窗口用于显示源代码,另一个窗口用于显示调试信息,如堆栈跟踪和寄存器值。这使得在调试过程中更加方便,并且可以更容易地跟踪程序的执行路径。在 GDB 中,你可以通过设置 TUI(Text User Interface)模式来启用调试窗口,以便更方便地查看代码和调试信息。这将在启动 GDB 时自动启用 TUI 模式,并将指定的可执行文件加载到调试器中。: 要在 GDB 中关闭 TUI 模式,可以按下。

david_bang_1980的博客 650

Linuxgdb调试tui

1 处于TUI模式的GDB 为了以TUI模式运行GDB,可以在调用GDB时在命令行上指定-tui选项,或者处于非TUI模式时在GDB中使用Ctrl+X+A组合键。如果当前处于TUI模式,后一种命令方式就会使你离开TUI模式。 在TUI模式中,GDB窗口划分为两个子窗口——一个用于输入GDB命令,而另一个用于查看源代码。 例如: 源代码为ins.c #include <stdi...

dataowner的专栏 647

GDB调试技巧】提高gdb调试效率

本文介绍了提高 GDB 调试效率的技巧,帮助开发者更快速、更有效地调试程序。首先,讨论了设置断点、单步执行以及查看变量等基本调试功能的使用方法。其次,介绍了使用 GDB 的高级功能,以便更精细地控制程序执行流程并监视变量变化。此外,还介绍了使用 GDB 脚本自动化调试流程的方法,以及一些常见问题的解决方案。通过掌握这些技巧,开发者可以更高效地利用 GDB 进行调试,加快程序开发和调试的进程。

朝花夕拾 5480

Linux 调试gdb命令及TUI模式

gdb gdb是Unix及类Unix下的调试工具。在Windows下, 我们习惯用了有图形界面的,像VC, VS, BCB等IDE的调试,但如果是 在Unix或类Unix平台下开发, gdb是我们的首选 . 背景 我们编写的程序可以有两种版本, Debug版本和Release版本, Linux中gcc/g++编译器默认是Release版本, Debug版本要 在编译时后面加上-g...

爱上小公举 4356

gdb与coredump调试技巧

gdb介绍 ​ GDB 的全称是GNU Debuger,是linux 底下的一种免費的debug程序,没有界面,当然Linux也有带界面的比如cgdb、kdbg、ddd和insight debugger,在使用gdb调试的时候我们需要在编译程序的时候生成调试信息,比如: gcc -Wall -g3 -o test test.c gcc生成调试信息的一些选项: -g:该选项可以利用操作系统的“原生格式(native format)”生成调试信息。GDB 可以直接利用这个信息,其它调试器也..

u012173846的博客 1万+

GDB调试之图形化界面(TUI

目录 简介 窗口介绍及切换 窗口属性 窗口刷新 TUI模式下指令介绍 断点状态显示 简介 TUI(TextUser Interface)为GDB调试的文本用户界面,可以方便地显示源代码、汇编和寄存器文本窗口,甚至可以显示程序及断点运行状态。 备注:本文所有命令均在tui模式下生效 窗口介绍及切换 窗口介绍 该模式下有五种窗口 (cmd)command命令窗口. 可以键入调试命令 (src)source源代码窗口. 显示当前行,断点等信息 ..

Augusdi的专栏 5450

GDB图形化界面调试指南:100-gdb-tips TUI模式完全使用手册

GDB(GNU调试器)是开发者必备的调试工具,而TUI(文本用户界面)模式则为命令行调试提供了直观的图形化体验。本文将详细介绍100-gdb-tips项目中TUI模式的使用方法,帮助新手快速掌握图形化调试技巧。 ## 什么是GDB TUI模式? TUI模式是GDB提供的文本图形化界面,它将终端分为多个窗口,同时显示源代码、汇编、寄存器和命令行等信息,让调试过程更加直观高效。相比传统命令行调试

gitblog_00982的博客 833

gdb TUI界面快捷键

TUI(TextUser Interface)为GDB调试的文本用户界面,可以方便地显示源代码、汇编和寄存器文本窗口。 Tui界面可以通过运行gdbtuigdb-tui命令进入(其它变种gdb也一样,如arm-none-eabi-gdb-tui),当然也可以进入gdb界面后使用TUI快捷键打开,如C-xC-a快捷键,详见TUI快捷键绑定章节。 1 TUI Overview 在TUI模式中,可以...

xiaozi0221的博客 3739

gdb调试技巧备忘

准备工作为了能让程序更直观的被调试,在编译时应该添加一些选项 -g: 添加调试选项 -ggdb3: 调试宏定义 启动方式不带参数gdb ./a.out 带参数gdb ./a.out set args -a -b -c any_argument_you_need b main run 调试core文件gdb bin_name core_name 调试正在运行的程序大致按如下步骤 ps ax

littlewhite1989的专栏 5728

GDB c++ 调试

GDB c++ 调试程序编译1. 安装gcc (CentOS):2. 编译GDB debug1. 安装 gdb2. 进入调试环境3. 基本操作4. 设置断点 程序编译 首先,在debug之前要对程序进行编译,可以用 gcc 进行编译。 检查是否安装 gcc: rpm -qa | grep gcc 若没有gcc, 请先安装。 1. 安装gcc (CentOS): yum -y install gc...

weixin_44387066的博客 1368

深入探索GDBLinux下强大的调试神器

GDB,全称GNU Debugger,是一款开源、跨平台的源码级调试工具,尤其在Linux生态系统中占据着举足轻重的地位。GDB支持包括C、C++、Fortran、Ada、Objective-C、Go、D等多种编程语言,能够与GCC、Clang、LLVM等一系列主流编译器无缝集成。无论是针对桌面应用程序、服务器端服务,还是嵌入式系统,GDB都能以其强大的功能和灵活的交互方式,为开发者提供无与伦比的调试体验。

专注于前后端学习 2958

GDB图形化调试工具:TUI模式与CGDB全面指南

GDB图形化调试工具TUI与CGDB对比指南》摘要(146字) 本文详解Linux下两大图形化调试方案:GDB内置的TUI模式支持Ctrl+x/a快速切换,提供源码/汇编/寄存器窗口,但存在刷新问题;CGDB作为增强版具备稳定双窗口界面,支持vim式操作,但需手动编译安装。对比显示:TUI适合服务器快速调试(启动快0.3秒),CGDB更适本地深度开发(多占20MB内存)。文末给出选择建议:简单调试TUI,复杂项目选CGDB,内核开发推荐TUI+kgdb组合。

AlgoCraft 1130
上一篇: ebpf 字节码elf文件信息读取
下一篇: ebpf perf_event使用流程
hubingsong
博客等级 码龄19年 2粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值