VSCode 调试
调试环境
- 系统:Windows10
- 开发语言:C
- 编译工具: Qt - mingw730_32
使用步骤
- 配置Qt的
mingw730_32/bin
到环境变量path
中, 如果不使用Qt要先安装Mingw
- 安装
C/C++
扩展插件 - 编写调试例子,并打测试断点
- 按
F5
启动调试器 - 首次选择环境
C++ (GDB/LLDB)
- 首次选择配置
gcc.exe - 生成和调试活动文件
,这里注意要打开待调试的C文件,否则不会出现对应的配置选择,这就是活动文件
的深意,其次环境变量也一定要配好。
- 所有操作完成后会跳到调试界面的断点上,调试窗口可实时查看变量值,调试操作可通过快捷键或右上角工具条完成。
- 至此完毕。
配置分析
上述几个步骤会在当前路径下生成了一个.vscode
文件夹,其中包括调试配置文件launch.json
、编译任务文件tasks.json
。配置项通过preLaunchTask
属性链接任务的label
。
launch.json
属性 | 描述 |
---|---|
name | 启动配置菜单名 |
program | 调试对象,${fileBasenameNoExtension} 活动文件名 |
miDebuggerPath | 调试器路径 |
preLaunchTask | 调试前调用的任务label |
tasks.json
属性 | 描述 |
---|---|
type | 任务类型,"cppbuild","shell" |
label | 任务标签,与preLaunchTask 值相同则被调用 |
command | 编译命令,"${file}"活动文件 |
args | 编译参数 |
含多个源文件
配置调试活动文件
适用于单源文件程序,顾名思义就是一个.cpp
构成一个应用程序,相同目录下的各cpp
相互独立,这样上述步骤生成的配置文件就适用该目录下的所有程序。
test
\.vscode
\main1.c
\main2.c
\main3.c
...
但如果需要调试一个工程即多源文件程序时要怎么进行呢?例如:
test
\.vscode
\function1.c
\function2.c
\main.c
这个时候在 tasks.json
文件的 args
属性值中,将"${file}"
改为"${fileDirname}\\*.c"
就可以了。若是复杂工程可以编写Makefile
来设定编译规则,使用make进行编译,只要编译时指定-g
选项同样也可以实现调试。
使用 Makefile
编写Makefile
,注意编译规则要加上-g
选项。
out ?= a.out
all:
gcc -g *.c -o $(out)
在tasks.json
文件的"tasks"
属性数组值中添加一项任务。
{
"type": "shell",
"label": "C/C++: make.exe 生成活动文件",
"command": "mingw32-make.exe",
"args": [
"out=${fileDirname}\\${fileBasenameNoExtension}.exe"
]
},
修改launch.json
中的任务调用。
// "preLaunchTask": "C/C++: gcc.exe 生成活动文件"
"preLaunchTask": "C/C++: make.exe 生成活动文件"
- 快捷键
F5
启动生成和调试。