GDB技巧:使用终端界面模式
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答
- GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
简介
准备工作
进入TUI模式
退出TUI模式
1. 简介
GDB是在MySQL调试时最常使用到的调试工具,在终端界面(TUI, Text User Interface)模式下, GDB可以和Visual Studio或者CLion一样像IDE一下显示和跟踪代码。
2. 准备工作
以下命令在 ubuntu 20.04上通过,gdb
- 安装GCC、GDB
sudo apt install gcc gdb
- 编译一个基本程序
使用任意文本编辑器,编写代码,并进行保存,如:hello.c
执行以下命令:
gcc -g -o hello hello.c
注: 其中-g代表添加DEBUG信息
3. 进入TUI模式
进入TUI模式的效果如下:

进入该模式的方法总体包括:
命令行参数模式: gdb --tui ./hello 其中,--tui告诉gdb启动终端界面模式
GDB命令模式
gdb ./hello
#进入GDB界面后, 以下命令任意输入一条
(gdb) layout src
(gdb) tui enable
3.1 调整UI的大小
某些情况下需要调整窗口的大小,可以使用:winheight src + 10或winheight src - 5之类的命令调整代码窗口大小
3.2 使用命令历史
默认情况在TUI模式下,上下箭头(Up, Down)按键已经被转成,代码窗口的上下移动,可以使用:Ctrl+P和Ctrl+N来调用前一条命令或后一条命令
可以输入focus next来激活命令窗口,这样上下箭头(Up, Down)按键又编程前一条命令和后一条命令
3.3 调整UI的大小
某些情况下需要调整窗口的大小,可以使用:winheight src + 10或winheight src - 5之类的命令调整代码窗口大小
3.4 使用命令历史
默认情况在TUI模式下,上下箭头(Up, Down)按键已经被转成,代码窗口的上下移动,可以使用:Ctrl+P和Ctrl+N来调用前一条命令或后一条命令
可以输入focus next来激活命令窗口,这样上下箭头(Up, Down)按键又编程前一条命令和后一条命令
3.5 切换窗口类型(不常用)
某些情况下,可能需要查看汇编代码、查看寄存器值等信息,可以使用:Ctrl+x后按2,进行切换,按同样按键可以在继续进行切换,效果如下:

4. 退出TUI模式
以下命令任意输入一条:
使用组合键 Ctrl+x+a (一起按下)
使用命令 tui disable
Enjoy GreatSQL
文章推荐:
技术分享 | MGR最佳实践(MGR Best Practice)
https://mp.weixin.qq.com/s/66u5K7a9u8GcE2KPn4kCaA
技术分享 | 万里数据库MGR Bug修复之路
https://mp.weixin.qq.com/s/IavpeP93haOKVBt7eO8luQ
Macos系统编译percona及部分函数在Macos系统上运算差异
https://mp.weixin.qq.com/s/jAbwicbRc1nQ0f2cIa_2nQ
技术分享 | 利用systemd管理MySQL单机多实例
https://mp.weixin.qq.com/s/iJjXwd0z1a6isUJtuAAHtQ
产品 | GreatSQL,打造更好的MGR生态
https://mp.weixin.qq.com/s/ByAjPOwHIwEPFtwC5jA28Q
产品 | GreatSQL MGR优化参考
https://mp.weixin.qq.com/s/5mL_ERRIjpdOuONian8_Ow
关于 GreatSQL
GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。
Gitee:
https://gitee.com/GreatSQL/GreatSQL
GitHub:
https://github.com/GreatSQL/GreatSQL
微信&QQ群:
可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群
QQ群:533341697
微信小助手:wanlidbc
本文由博客一文多发平台 OpenWrite 发布!
GDB技巧:使用终端界面模式的更多相关文章
- GDB技巧整理
https://blog.atime.me/note/gdb-tricks.html 整理常用的gdb技巧. 常用命令 常用的gdb命令... 启动gdb 直接运行 gdb --args prog a ...
- Android SDK 环境的搭建 --图形界面模式和命令行模式
Android 开发首先就是要搭建开发环境,没有用过Eclipse(ADT)开发过,直接用的Android Studio,其中最主要的就是 Android SDK的安装和搭建,所以这里只是总结下And ...
- 电脑技巧---完全控制面板---上帝模式(God Mode)
简介 上帝模式,即"God Mode”,或称为“完全控制面板”.是Windows 系统中隐藏的一个简单的文件夹窗口,但包含了几乎所有Windows系统的设置,如控制面板的功能.界面个性化.辅 ...
- python selenium chrome有界面与无界面模式
from selenium.webdriver.chrome.options import Options from selenium import webdriver # 无界面模式 def Chr ...
- selenium(六)Headless Chrome/Firefox--PhantomJS停止支持后,使用无界面模式。
简介: 以前都用PhantomJS来进行无界面模式的自动化测试,或者爬取某些动态页面. 但是最近selenium更新以后,'Selenium support for PhantomJS has bee ...
- kvm安装图终端界面及形界面安装系统
1.图形界面安装: qemu-img create -f qcow2 /kvm/os/vm-01.qcow2 16G mkdir -p /kvm/iso cd /kvm/iso 上传事先下载好的镜像文 ...
- selenium+python自动化100-centos上搭建selenium启动chrome浏览器headless无界面模式
环境准备 前言 selenium在windows机器上运行,每次会启动界面,运行很不稳定.于是想到用chrome来了的headless无界面模式,确实方便了不少. 为了提高自动化运行的效率和稳定性,于 ...
- linux无界面模式安装selenium+chrome+chromedriver并成功完成脚本(亲测可用)
环境:docker centos 7.4 能通外网 写好的selenium脚本. 具体步骤: 一:安装selenium 这是最简单的 直接利用 pip3 install selenium 二 安装c ...
- selenium 浏览器无界面模式运行
以Chrome浏览器为例: 方法一: from selenium.webdriver import Chrome, ChromeOptions opt = ChromeOptions() # 创建Ch ...
随机推荐
- 企业应用架构研究系列二十六:信号量SemaphoreSlim与Semaphore
在进行多线程程序的开发和设计的过程中,不可避免的需要引入semaphore信号量这个组件,这是.net框架提供的一个对多线程计数互斥的方案,就是允许指定的线程个数访问特定的资源而增加的 一个" ...
- 07makefile文件
makefile 规则: 目标: 依赖 (tab)命令 第一个版本: main: main.c fun1.c fun2.c sum.c gcc -o main main.c fun1.c fun2.c ...
- CenterNet训练时黑白图片不能画框的问题
解决CenterNet在detect.py中不能画框的问题 在第centernet.py的第198行的中加上这一行 image = image.convert('RGB')
- HttpUploadFile
public static void HttpUploadFile(string url, string file, string paramName, string contentType, Nam ...
- 差分优化建边(Tax)
[Luogu P6822PA2012]Tax] (http://www.luogu.com.cn/problem/P6822") All right. Let's go! 题目描述 给出一个 ...
- Redis - 持久化 AOF 和 RDB
Redis - 持久化 AOF 和 RDB AOF AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. AOF 文件中的命令全部以 Redis 协议的格 ...
- c++ 关于二分的STL 详解
一.解释 以前遇到二分的题目都是手动实现二分,不得不说错误比较多,关于返回值,关于区间的左闭右开等很容易出错,最近做题发现直接使用STL中的二分函数方便快捷还不会出错,不过对于没有接触过的同学,二分函 ...
- 关于Node.js 链接mysql超时处理(默认8小时)
备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法:1.封装mysql.js var mysql = require('mysql'); var connecti ...
- Kafka KRaft模式探索
1.概述 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据.其核心组件包含Producer.Broker.Consumer,以及依赖的Zookeeper集群. ...
- 静态static关键字概述和静态static关键字修饰成员变量
static关键字 概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属 于某个对象的.也就是说,既然属于类,就可以不靠创建对象来调用了 ...