目录
一:debug和release版本
程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项,即debug版本
二 gdb调试
安装gdb:
//在普通用户下,使用sudo短暂提权,来下载gdb
sudo yum install -y gdb
命令:
gdb + 可执行程序
2.1展开代码
l:直接回车会显示部分代码,可以持续按回车,直到代码显示完整
l+数字:会展开部分代码,一般要看的改行代码,在所展示代码的中间位置
l +函数名 :看对应的函数eg:l main , l Sum
l + 文件名 : 行号:看对应文件的改行代码,适用于多文件
2.2运行程序 r
r:在没有断点的情况下,直接跑完程序,如果有断点,会在运行到断点处停止,相当于VS调试下的F5
.
2.3断点
b + 数字 :在该行处打断点(相当于VS中的F9)
b + 文件名:行号:在对应文件处打断点
查看断点:info b
删处断点:d + 断点编号(上图中框的Num)
在一个调试周期中,断点编号是线性递增的。
禁用断点:disable + 断点编号
启用断点:enable+断点编号
2.4调试
n(next):逐过程调试,不进入函数,相当于VS的F10
s(step):逐步调试,相当于VS中的F11
2.5显示变量
类似与VS中的调试窗口,可以看见我们想看到的变量的变化
display+变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay + 编号:取消对变量的跟踪
跟踪变量的编号在一个周期内也是线性递增的
2.6跳转到某行
until + 行号
2.7从一个断点到另一个断点
类似于在VS中有多个断点的情况下,按F5,跳转到下一个断点
c:跳转到下一个断点
2.8函数级别运行
finish : 执行到当前函数返回,然后挺下来等待命令
2.9退出调试器
quit:退出调试器
2.10显示全部的临时变量
info locals : 将main函数中定义的临时变量显示出来,相当于VS中的调试的自动窗口
2.11其他命令
watch+变量:一旦这个变量变化,就会通知,也算是断点的一种
d+编号:去掉watch的通知
set var 变量 = 一个值 :
在调试过程中可以修改一个变量的值
2.12条件断点
1.新增条件断点:b + 数字 + if + 条件
2.给已有断点追加条件
condition +断点编号+条件
三:cgdb 可视化代码的调试
命令和gdb的一样,但是它可以看见代码
安装命令:
yum install -y cgdb
标签:变量,代码,gdb,VS,使用,断点,调试
From: https://blog.csdn.net/2301_80096514/article/details/143511607