vscode调试c++
时间: 2023-10-15 17:06:32 浏览: 117
要在 VS Code 中调试 C++ 代码,需要进行以下步骤:
1. 安装 C/C++ 扩展。在 VS Code 中按下 Ctrl+Shift+X,打开扩展面板,搜索 C/C++ 扩展,然后点击安装。
2. 配置 launch.json 文件。在 VS Code 中打开您的 C++ 项目文件夹,然后按下 F5 键。这将自动生成一个 launch.json 文件,该文件包含了调试器的配置信息。
3. 在 launch.json 文件中选择调试环境。在 "configurations" 字段下,选择您想要使用的调试环境,比如 GDB 或者 LLDB。
4. 配置编译任务。在 VS Code 中打开命令面板(Ctrl+Shift+P),然后输入 "Tasks: Configure Task"。选择 "Create tasks.json file from template",然后选择 "Others"。在生成的 tasks.json 文件中,配置您的编译任务。
5. 启动调试器。在 VS Code 中按下 F5 键,或者点击左侧的调试按钮,然后选择 "Start Debugging"。
6. 在调试器中设置断点。在您的 C++ 代码中设置断点,然后按下 F5 键或者点击调试工具栏中的 "Continue" 按钮,开始调试您的程序。
如果您需要更详细的信息,可以参考 VS Code 官方文档中的 C++ 调试指南。
相关问题
vscode 调试c++
### 配置 VSCode 进行 C++ 调试
#### 安装 MinGW-w64 编译器
为了能够在 Windows 平台上编译 C++ 程序,需要先安装 MinGW-w64 工具链。这一步骤确保拥有必要的 gcc 和 g++ 编译工具来构建项目[^1]。
#### 安装 C/C++ 插件
通过扩展市场安装 Microsoft 提供的官方 C/C++ 扩展包,该插件提供了 IntelliSense 支持以及其他有用的功能,如语法高亮显示、代码片段等[^2]。
#### 创建并配置 `launch.json` 文件
此文件用于定义启动调试会话所需的参数。通常位于 `.vscode` 文件夹下:
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:\\path\\to\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
}
]
}
```
上述 JSON 片段中的 `"miDebuggerPath"` 应指向本地安装的 GDB 可执行路径,而 `"preLaunchTask"` 则关联到后续的任务定义中指定的构建命令[^5]。
#### 设置预编译任务 (`tasks.json`)
同样放置于 `.vscode` 文件夹内,用来描述如何调用编译器生成可执行文件:
```json
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"],
"detail": "Generated task from Build Active File"
}
]
}
```
这段配置指定了当触发构建时应使用的具体编译选项和输出位置。
#### 修改 `c_cpp_properties.json`
为了让编辑器理解项目的上下文环境,特别是头文件的位置和其他编译设置,需调整此文件内的字段以匹配实际的工作区结构:
```json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
```
这里的 `"includePath"` 字段列出了所有可能包含标准库或其他依赖项头文件的地方;`"compilerPath"` 明确指出所使用的 GCC/G++ 的绝对路径[^4]。
完成以上步骤之后,在 VSCode 中打开终端窗口输入简单的测试代码(例如给定的例子),按下 F5 或者点击左侧边栏上的绿色播放按钮即可开始调试过程。此时应该能看到程序正常运行,并可以在源码中标记断点来进行逐步跟踪分析。
vscode调试c++教程
### VSCode调试C++程序
#### 安装必要的工具和扩展
为了能够在VSCode中顺利地编译并调试C++代码,需要先安装一些必备的组件。这包括但不限于`gcc`、`g++`这样的编译工具以及专门为支持C++开发而设计的Visual Studio Code扩展包[^1]。
#### 配置项目结构
对于基于项目的构建方式来说,可以采用`CMakeLists.txt`文件定义工程配置,例如创建可执行目标可以通过如下语句实现:
```cmake
project(main)
add_executable(main "main.cpp")
```
此部分适用于那些希望通过CMake管理其源码的人群[^2]。
#### 设置JSON文件用于自动化流程
为了让IDE能够自动处理编译过程中的细节问题,通常还需要编写两个重要的JSON格式配置文档——`launch.json`与`tasks.json`。前者用来指定启动时所使用的调试环境;后者则负责描述具体的任务指令集,比如调用哪个编译器来完成对象文件链接等工作[^4]。
- **Launch Configuration (`launch.json`)**
此处提供了一个简单的例子供参考:
```json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.out", // 编译后的二进制路径
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb"
}
]
}
```
- **Task Runner (`tasks.json`)**
下面是一个基本的任务运行脚本模板:
```json
{
"version": "2.0.0",
"tasks": [
{
"label": "build hello world",
"type": "shell",
"command": "/usr/bin/g++",
"args": [
"-g",
"${relativeFile}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"],
"detail": "Generated task to build C++ file."
}
]
}
```
以上设置允许开发者仅需点击一次按钮即可触发整个编译链路直至最终生成可供测试的应用程序实例[^3]。
#### 开始调试会话
当一切准备就绪之后,在想要打断点的地方简单地标记出来,随后按下F5键或是通过菜单栏选择“开始调试”,此时将会按照预先设定好的规则加载相应的进程,并进入交互式的除错模式下工作。
阅读全文
相关推荐















