VS code设置C++调试

环境设置

在vscode中为c++配置调试功能,需要有以下配置

  1. gcc/g++已经添加到了环境变量中环境变量中。
  2. vscode添加了C/C++扩展

三个配置文件设置

c_cpp_properties.json

该文件注意是告诉vscode编译器相关的信息。如果缺少该文件,或文件配置错误,可能出现#include <iostream>报错的问题,如图所示:

在这里插入图片描述

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64",
            "compilerPath": "C:/Program Files/mingw64/bin/g++.exe"
        }
    ],
    "version": 4
}

launch.json

该文件主要是告诉vscode调试器在哪里,以及调试器相关的配置。program中则存放的是文件所在的路径,

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++调试",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",  // 生成的exe文件路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",  // 将工作目录设置为当前文件所在的目录
            "environment": [],
            "externalConsole": false,  // 如果需要外部控制台,可以设置为true
            "MIMode": "gdb",
            "miDebuggerPath": "C:/Program Files/mingw64/bin/gdb.exe",  // 替换为你系统中的gdb路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build"  // 确保在调试前执行编译任务
        }
    ]
}

tasks.json

cpp程序在运行之前需要先编译,因此在调试之前需要确保程序已经编译好。tasks中label对应的值build和launch.json中preLaunchTask对应的值build相呼应,表示在调试之前需要执行的任务。
而在tasks.json中,标签名为build的任务是使用g++编译器将当前的cpp文件编译为exe文件,注意参数列表args中不可缺少-o指令,-o指令可以保存调试信息,使用该指令才能让程序可调试。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",
                "-g",
                "-o", //注意不要丢掉该指令,使用该指令可以保留调试信息,使得vscode能够对cpp编译的程序进行调试
                "${fileDirname}/${fileBasenameNoExtension}.exe"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "Generated task for compiling current file."
        }
    ]
}
### 如何在 VS Code 中配置和使用 C++ 调试器 #### 准备工作 为了能够在 Visual Studio Code (VS Code) 中顺利调试 C++ 程序,需确保已安装 MinGW 或其他兼容的 GCC 工具链以及对应的 C/C++ 扩展包。对于 Windows 用户而言,MinGW 提供必要的编译工具来构建本地应用程序[^3]。 #### 创建项目文件夹并初始化 建立一个新的文件夹作为项目的根目录,在其中创建源代码文件(例如 `main.cpp`)。打开此文件夹于 VS Code 内部以便管理关联资源。 #### 安装 C/C++ 插件 通过 Extensions 视图 (`Ctrl+Shift+X`) 搜索 "C/C++" 来找到由 Microsoft 发布的相关扩展,并点击 Install 进行部署。这一步骤会向编辑器添加语法高亮显示、智能感知等功能支持[^1]。 #### 设置 launch.json 文件 启动调试之前,必须定义好调试配置项。可以通过按下 F5 键触发自动检测语言类型进而引导生成默认模板;也可以手动前往 `.vscode/launch.json` 添加如下 JSON 片段: ```json { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", // 请根据实际路径调整 "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] } ``` 上述配置指定了当发起调试请求时所使用的 GDB 可执行程序位置以及其他参数选项。注意修改 `"miDebuggerPath"` 字段指向本地机器上正确的 GDB 安装地址[^2]。 #### 构建任务设定 tasks.json 为了让调试流程更加顺畅,建议预先安排一个预处理命令负责编译目标文件。同样位于 `.vscode/tasks.json` 下面加入以下内容: ```json { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "gcc", "args": [ "-g", "${relativeFile}", "-o", "${workspaceFolder}\\${fileBasenameNoExtension}.exe" ], "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"], "detail": "Generated task." } ] } ``` 这里设定了名为 build 的 shell 类型的任务,利用 gcc 命令配合 `-g` 参数开启调试信息生成模式,最终产出可执行文件供后续加载到调试环境中去。 完成以上步骤之后就可以尝试按F5键开始调试过程了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值