Linux:vim调试工具gdb | 常见命令集

简介: Linux:vim调试工具gdb | 常见命令集

一、Linux 调试背景

linux发布的程序由debug和release两个版本,但在Linux环境下生成的程序默认为release版本。但一份代码需要被调试,该代码的发布模式必须是debug。所以在在使用g++编译代码时,需要额外增加-g选项。

gdb常见命令集

二 、进入、退出调试、显示源代码

指令 功能
gdb + 二进制文件(debug模式生成的) 开始调试该文件对应的源文件
quit 退出调试
l(或list)+ number 从number位置开始显示源代码,每次打印10行;由于gdb会记录最近的历史指令,所以直接回车会接着打印源代码
l(或list)+ 函数名 列出该函数的代码源
until + number 跳至number行

三、 程序执行操作

指令 功能
r(或ruun) 开始调试,类似于vs编译器中的F5,即如果程序中断点,则在程序运行中的第一个断点出停止,否则直接运行结束
c(或Continue或continue) 从一个断点直接运行到下一个断点
n (或next) 逐过程,类似于vs编译器中的F10
s (或step) 逐语句,类似于vs编译器中的F11
fiinish 运行到当前函数的结尾

四、断点生成、删除

指令 功能
b(或break) + number、file:number 两种方式 在文件的number行打断点
b(或break) + function、file:function 两种方式 在函数function中的第一行有效代码出打断点
d(或delete) + breakpoints) 删除所有断点
d(或delete) + n 删除序号为n所对应的断点
info + b 查看所有断点信息
enable + 断点序号 开启断点,即让禁止断点重新发挥断点作用
disable + 断点序号 禁止断点,即该断点依然存在,但不起任何作用

五、其他

指令 功能
bt (或breaktrace) 调用堆栈
p + 变量 显示变量的值
display + 变量 常显示某个变量,类似于vs中的监视中的窗口,在后续调试过程中该变量的值会一直显示,直到程序结束
undisplay + 变量所对应的序号 取消常显示
set + var + 变量 = num 将变量的值修改为num


相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
7月前
|
Linux 开发工具
LS-LINUX-001 Vim的使用方法
本文介绍了终端编辑器 Vim 的基础使用方法及 Linux 系统中 `systemctl` 命令的操作技巧。Vim 部分涵盖编辑模式与命令模式切换、常用编辑指令;`systemctl` 部分以 `dhcpcd` 服务为例,讲解了服务的启动、停止、重启、状态查询及开机自启设置等操作,适合初学者快速掌握系统管理技能。
179 13
|
8月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
560 3
|
6月前
|
NoSQL Linux 编译器
GDB符号表概念和在Linux下获取符号表的方法
通过掌握这些关于GDB符号表的知识,你可以更好地管理和理解你的程序,希望这些知识可以帮助你更有效地进行调试工作。
298 16
|
5月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
327 0
|
存储 运维 搜索推荐
|
Unix Linux 开发工具
Linux Vim的 命令大全
Linux Vim的 命令大全
207 0
|
12月前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
387 1
|
NoSQL Linux C语言
Linux GDB 调试
Linux GDB 调试
202 10
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
809 3
|
NoSQL
技术分享:如何使用GDB调试不带调试信息的可执行程序
【8月更文挑战第27天】在软件开发和调试过程中,我们有时会遇到需要调试没有调试信息的可执行程序的情况。这可能是由于程序在编译时没有加入调试信息,或者调试信息被剥离了。然而,即使面对这样的挑战,GDB(GNU Debugger)仍然提供了一些方法和技术来帮助我们进行调试。以下将详细介绍如何使用GDB调试不带调试信息的可执行程序。
420 0