配置VSCode的launch.json文件以调试C++程序

首先确保安装C/c++扩展和调试器并生成带-g参数的可执行文件,然后创建launch.json配置调试类型、程序路径、预启动编译任务及调试器路径,配合tasks.json定义编译命令,最后按F5启动调试。

配置VSCode的launch.json文件以调试C++程序

在使用 vscode 调试 C++ 程序时,需要正确配置 launch.json 文件。这个文件告诉调试器如何启动程序、使用哪个可执行文件、传入什么参数等。下面是如何配置它的详细说明。

1. 确保已安装必要扩展和工具

在配置之前,请确认以下内容已准备就绪:

  • 已安装 C/C++ 扩展(由 microsoft 提供)
  • 已安装调试器,如 GDBlinux/macOS)或 MinGW-w64 / MSVCwindows)
  • 已通过编译生成可执行文件(例如使用 g++ 编译)

2. 创建 launch.json 文件

打开 VSCode,在左侧活动栏点击调试图标(虫子图标),然后点击“创建 launch.json”或“添加配置”。

如果还没有 .vscode/launch.json 文件,VSCode 会提示选择环境,选择 C++ (GDB/LLDB)

3. 常见 launch.json 配置示例(以 g++ 为例)

以下是一个适用于 Linux/macOS 或 windows 上 MinGW 的典型配置:

配置VSCode的launch.json文件以调试C++程序

标贝悦读AI配音

在线文字转语音软件-专业的配音网站

配置VSCode的launch.json文件以调试C++程序 20

查看详情 配置VSCode的launch.json文件以调试C++程序

立即学习C++免费学习笔记(深入)”;

{ “version”: “0.2.0”, “configurations”: [ { “name”: “调试C++程序”, “type”: “cppdbg”, “request”: “launch”, “program”: “${workspaceFolder}/${fileBasenameNoExtension}.exe”, // Windows 下带 .exe “args”: [], “stopAtEntry”: false, “cwd”: “${workspaceFolder}”, “environment”: [], “externalConsole”: false, // 使用集成终端 “MIMode”: “gdb”, “miDebuggerPath”: “gdb”, // 确保 gdb 在系统路径中 “setupCommands”: [ { “description”: “为 printf 启用整齐打印”, “text”: “-enable-pretty-printing”, “ignoreFailures”: true } ], “preLaunchTask”: “编译” // 对应 tasks.json 中的任务名 } ] }

4. 关键字段说明

  • program:指定要调试的可执行文件路径。常用变量:
    ${workspaceFolder} → 项目根目录
    ${fileBasenameNoExtension} → 当前文件名(不含后缀,如 main)
  • preLaunchTask:在启动调试前运行的任务,通常用于编译。需在 tasks.json 中定义名为“编译”的任务
  • miDebuggerPath:调试器路径。Windows 上若使用 MinGW,可能是 C:mingw64bingdb.exe
  • externalConsole:设为 true 可弹出外部终端窗口(某些情况下避免程序闪退)

5. 配合 tasks.json 实现一键编译调试

确保项目根目录下有 .vscode/tasks.json,定义编译任务:

{ “version”: “2.0.0”, “tasks”: [ { “label”: “编译”, “type”: “shell”, “command”: “g++”, “args”: [ “-g”, “${file}”, “-o”, “${fileBasenameNoExtension}.exe” ], “group”: { “kind”: “build”, “isDefault”: true }, “problemMatcher”: [“$gcc”] } ] }

这样,启动调试时会自动先编译当前文件。

基本上就这些。配置完成后,打开一个 C++ 文件,按 F5 即可开始调试。断点、变量监视、调用等功能都能正常使用。注意确保编译时加了 -g 参数以包含调试信息。

上一篇
下一篇
text=ZqhQzanResources