很多朋友使用各种IDE工具调试的时候非常舒服 换到命令行使用gdb就开始头疼
我挑选了几个IDE工具中常用的调试功能 (亲测本文章出现的命令就完全够用! ! !)
注意如果没有gdb工具记得下载一个
yum install -y gdb (下载命令)
需要注意的是直接使用gcc/g++编译的可执行程序没有调试信息 无法调试
需要gcc/g++ -g 编译 (调试版本略微大一点)
![](https://img-blog.csdnimg.cn/b7c8a8d2c9744d4290688a5e2455a796.png)
以vs为例 对比一些常用的功能
功能 | gdb | vs |
开始执行程序 | r/run | F5 |
打断点 | b/break+行号 | F9 |
逐语句执行 | n/next | F10 |
逐过程执行 | s/step | F11 |
结束程序 | quit | S |
gdb的一些常用zhi
功能 | 指令 |
显示行号内容 | list+n/函数名 |
查看断点信息 | info+b |
打印变量内容 | p+变量名 |
删除断点 | d+断点编号 |
运行完一整个函数 | finish |
跳转到指定行 | until |
打开/关闭断点 | enable/disable |
打开/关闭 常显示 | dis/undis play |
按断点执行命令 | c |
需要注意的一些小事项 !
gdb会自动记录最近的一条命令 如果需要重复执行的话直接回车键就可以 !
断点打好之后 会自动排序 而不是根据断点所在行
当我们需要删除断点时 d后面跟的也是上图Num的编号 不是断点所在行
演示代码
#include <stdio.h>
int Addm(int n){
int count=1;
for(int i=1;i<n;i++)
{
count+=i;
}
return count;
}
int main()
{
int i=Addm(100);
printf("%d",i);
printf("这是第1个");
printf("这是第2个");
printf("这是第3个");
printf("这是第4个");
printf("这是第5个");
printf("这是第6个");
printf("这是第7个");
return 0;
}
掌握这几条命令就足够我们日常学习的使用啦 ~