vscode配置C/C++环境
关于vscode如何可以配置C/C++环境,大家可以移步vscode配置C/C++环境,这是D32762大佬的调试教学,对于新手小白非常友好。
文章背景和简介
本篇文章主要记录vscoed配置C/C++环境后,用GDB调试一些简单代码的实操。
调试代码展示
调试代码为一个简单的C语言程序text.c,包含数组遍历,函数调用和数值计算,可以用来演示GDB的断点设置,单步执行,变量查看和函数追踪等核心调试功能。
#include<stdio.h>
int add(int a,int b){
int result=a+b;
return result;
}
int main(){
int arr[5]={10,20,30,40,50};
int i,sum=0;
for(i=0;i<5;i++){
sum+=arr[i];
}
printf("Sum:%d\n",sum);
int x=10,y=20;
int z=add(x,y);
printf("add(%d,%d)=%d\n",x,y,z);
return 0;
}
使用GDB前准备工作
首先,将代码输入到vscode,编写完成后,在终端编写 gcc -g -o test test.c 将text.c文件进行编译为text.exe文件。
gcc -g -o test test.c
其次,在终端编写 gdb ./test.exe 打开GDB调试工具。
gdb ./test.exe
初步结果如下图所示,其中下图的gdb已经成功启动,现在它停在了一个信息提示页面。这是正常结果,我们需要按enter键继续下一步就可以。
gdb正式调试过程
现在让我们正式进入gdb调试过程。
BREAK
首先在main设置断点,下图数字8前面就为设置的断点。
gdb brask
为什么要设置断点?他的作用是什么?
**断点就是让程序在指定的位置暂停下来,**设置断点可以方便程序出错时寻找错误,同时也可以观察程序的运行过程。
查看源代码:list
设置好断点后,输入 list可以查看当前断点附近的源代码:
gdb list
可以看到类似这样的输出:

运行程序:run
输入 run开始运行程序,它会停在第一个断点处:
(gdb) run
输出示例:

单步执行:next
输入 next 可以一行一行地执行代码,不进入函数内部:
gdb next
程序只执行下一行代码,多次使用会在下一行的基础上继续执行下一行。
输出示例

查看变量:print
输入 print 变量名可以查看当前变量的值:
gdb print i
gdb print sum
这里我选择调试i,sum两个变量的值。其中,变量i因为在调试的第9行没有赋予初值,被系统自动分配垃圾值。
示例输出:

继续运行:continue
如果程序停在了断点,让它继续运行到下一个断点 或程序结束
gdb continue
程序会继续执行,直到遇到下一个断点或正常结束。

退出 GDB:quit
调试完成后,输入 quit退出 GDB:
gdb quit
示例输出

GDB 调试命令总结表
| 命令 | 作用 | |
|---|---|---|
break main |
设置断点 | |
run |
运行程序 | 停在断点 |
list |
查看代码 | 显示代码 |
next |
单步执行 | 执行一行 |
print |
查看变量 | 显示值 |
continue |
继续运行 | 程序结束 |
quit |
退出 GDB | ✅正常退出 |