task.json和launch.json文件注解
·
task.json
- 编译代码的设置

task.json外部参数
tasks
- 类型:数组
- 含义:可以定义多条任务(例如一条C编译,一条Cpp编译
- 数组中的每一个对象,代表一条可以独立执行的任务
“version”:"2.0.0"j
- 固定配置规范版本号,不用修改
task.json内部参数
“type”:“cppbuild”
- 任务类型
- cppbuild是微软C/C++扩展专属任务类型
- 作用:让C/C++插件接管这条任务
“label”:“C/C++: g++.exe”
- 任务唯一名称
- 与launch.json里的preLaunchTask的值必须一样
- 调试运行前,VScode依靠Label找到对应的编译任务
“command”:“外部编译器路径”
- 将要执行的外部程序路径
- C++ 代码 → 使用 g++.exe(自动链接 C++ 标准库:cout、cmath、string 等)
- C 语言代码 → 使用 gcc.exe
“args”:[…]
- 传递给command程序的命令行参数数组
- 等价于CMD手动执行命令:g++.exe -fdiagnostics-color=always -g test.cpp -o test.exe
“options”:{“cwd”:“${filename}”}
- options = 执行这条编译命令时的环境配置
- cwd = 当前工作目录
“problemMatcher”:[“$gcc”]
- 错误捕获匹配器·
$gcc 是 VSCode 内置规则:
自动解析 g++/gcc 输出的报错信息,提取文件名、行号、错误原因,展示在编辑器左侧问题栏,点击直接跳转到出错代码行。
固定写法,无需改动。
“group”:{“kind”:“build”, “isDefault”:true}
- options = 执行这条编译命令时的环境配置
“kind”: “build”
归类为【构建/编译任务】,Ctrl+Shift+B 调出编译任务列表时显示
“isDefault”: true
标记为默认编译任务
按下 Ctrl+Shift+B 可以直接快速执行这条任务
“detail”: “调试器生成的任务。”
纯展示文本,只在 VSCode 任务下拉列表显示,不参与程序执行,可以删除或者随便修改
launch.json

顶层字段
“version”: “0.2.0”
- launch 配置文件规范版本,固定,不要修改
“configurations”: [ {…} ]
- 数组,可以写多套调试方案(比如一套调试 C、一套调试 C++),每一个{}代表一套调试配置。
内部配置项
“name”: “C/C++ Runner: Debug Session”
- 配置显示名称
左侧调试面板下拉框展示的文字;你可以随便改名,例如改成 调试C++程序。
“type”: “cppdbg”
- 调试器类型
- cppdbg = VSCode 官方 C/C++ 扩展调试类型(适配 MinGW gdb),固定写法,不用改。
“request”: “launch”
- 启动模式,两种可选:
- launch:全新启动程序调试(我们日常写代码 99% 用这个)
- attach:附加到已经正在运行的进程上调试(逆向、排查死锁才用,初学不用)
“args”: []
- 程序运行时传入命令行参数
- 例如程序需要输入 ./a.exe 100 hello,就写成:“args”: [“100”, “hello”]
- 目前空数组 = 不给程序传参数。
“stopAtEntry”: false
- 是否在 main 函数第一行自动暂停
- true:按下 F5,程序直接停在main这一行
- false:直接正常运行,遇到断点才停下
“externalConsole”: true
- 是否弹出独立黑色控制台窗口(非常关键!)
- true:单独弹出 cmd 黑窗口,适合 cin、scanf 键盘输入
- false:程序嵌入 VSCode 内置终端运行,部分情况下 cin 输入容易出问题
“cwd”: “c:/Users/jia21/Documents/Obsidian Vault/game”
- cwd = 当前工作目录(Current Working Directory)
- 程序运行时认为自己所在的文件夹。
- 如果你代码里读取相对路径文件,程序会以这个目录为基准寻找文件。
“program”: “c:/Users/…/outDebug”
- (最重要)要调试的可执行程序路径
- 告诉 gdb:我要调试哪一个 exe 程序。
- 缺点:你现在是硬编码绝对路径,切换代码文件直接失效!
- 之前我们 tasks 配套方案使用变量:
- “program”: “${fileDirname}\${fileBasenameNoExtension}.exe”
“MIMode”: “gdb”
- 指定调试后端程序是 gdb。
- MinGW 环境固定填gdb,MSVC 编译器才用别的。
“miDebuggerPath”: “gdb”
- gdb 调试器程序位置
- 现在只写了"gdb",代表去系统环境变量 PATH 寻找 gdb.exe;
- 如果你没有配置系统环境变量,会找不到调试器直接报错。
“setupCommands”: [ … ]
- 启动 gdb 之后,自动预先执行的调试命令
json
{
“description”: “Enable pretty-printing for gdb”,
“text”: “-enable-pretty-printing”,
“ignoreFailures”: true
}
enable-pretty-printing:美化打印 STL 容器(vector、string、数组正常展开查看,不会显示原始内存)
ignoreFailures: true:如果这条命令 gdb 不支持,忽略错误,继续调试
更多推荐

所有评论(0)