vscode的launch.json文件
时间: 2025-04-30 12:44:21 浏览: 44
### 配置 VSCode 的 `launch.json` 文件
#### 基本概念
`launch.json` 是 Visual Studio Code 中用于调试程序的核心配置文件。它定义了启动调试会话所需的各项设置,例如运行环境、可执行文件路径以及传递给程序的参数等。
---
#### 创建 `launch.json`
要创建或编辑 `launch.json` 文件,可以按以下方法操作:
1. 打开项目目录下的 `.vscode/` 文件夹(如果不存在,则手动创建该文件夹)。
2. 使用快捷键 **Ctrl+Shift+D** 或点击左侧活动栏中的调试图标,然后选择顶部工具栏中的齿轮图标 (**Configure**) 来生成默认模板。
3. 如果已有模板,可以直接修改;如果没有,默认情况下可以选择适合的语言支持并自动生成初始配置。
---
#### 主要字段说明
以下是常见的 `launch.json` 字段及其作用:
- **name**: 调试配置名称,在调试界面显示以便区分不同配置[^1]。
```json
"name": "C++ Launch"
```
- **type**: 指定使用的调试器类型,通常为 `cppdbg` 表示 C/C++ 调试。
```json
"type": "cppdbg"
```
- **request**: 请求模式,一般固定为 `"launch"` 表示启动新进程进行调试。
```json
"request": "launch"
```
- **program**: 可执行文件路径,通常是编译后的二进制文件位置。
```json
"program": "${workspaceFolder}/a.out"
```
- **args**: 向程序传递的命令行参数列表。
```json
"args": ["arg1", "arg2"]
```
- **stopAtEntry**: 是否在程序入口处暂停,默认为 `false`。
```json
"stopAtEntry": false
```
- **cwd**: 工作目录,指定当前工作路径。
```json
"cwd": "${fileDirname}"
```
- **environment**: 设置额外的环境变量。
```json
"environment": [
{"name": "VAR_NAME", "value": "var_value"}
]
```
- **externalConsole**: 是否启用外部控制台窗口,默认为 `true`。
```json
"externalConsole": true
```
- **MIMode**: 指定调试协议,对于 GCC/GDB 用户应设为 `gdb`。
```json
"MIMode": "gdb"
```
- **miDebuggerPath**: GDB 或 LLDB 的具体路径,当未加入全局 PATH 时需显式提供。
```json
"miDebuggerPath": "/usr/bin/gdb"
```
- **preLaunchTask**: 在启动前自动触发的任务名,常用来关联构建任务 (`tasks.json`) 。
```json
"preLaunchTask": "build"
```
---
#### 示例配置
假设正在开发一个简单的 C++ 程序,并希望使用 GDB 进行调试,下面是一个完整的 `launch.json` 示例:
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug Configuration",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/bin/app.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}
```
上述配置中包含了多个常用选项,其中 `${workspaceFolder}` 和其他预定义变量简化了跨平台兼容性处理。
---
#### 关联 `tasks.json`
为了实现自动化构建流程,可以通过 `preLaunchTask` 参数绑定到 `tasks.json` 定义的任务上。例如,先通过 Makefile 构建目标再进入调试阶段。
以下是对应的 `tasks.json` 示例片段:
```json
{
"label": "build",
"type": "shell",
"command": "make",
"group": "build",
"problemMatcher": []
}
```
这样每次启动调试之前都会重新构建最新版本的应用程序。
---
阅读全文
相关推荐


















