关于VSCode调试(Debug)C++的相关问题

基本步骤

  • 搭建C++环境
    • 关于环境搭建可以看看上文的参考文章2,或者其他mingw环境的安装
  • 搭建debug环境
    • 经过多方资料查证,C++的debug环境和Java等语言有点不一样,需要三个文件,这里我找了官网的解释:

      • tasks.json (build instructions) 编译文件配置
      • launch.json (debugger settings) debug配置
      • c_cpp_properties.json (compiler path and IntelliSense settings) 编译器路径配置以及智能感知
    • 用官网的例子代码:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}
  • task.json如下配置
    • 需要注意的是command是g++的地址,这个就需要找到自己电脑相应的位置的bin目录
{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "C/C++: g++.exe build active file",
      "command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
      "args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}
  • launch.json配置如下
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++.exe - Build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++.exe build active file"
    }
  ]
}
  • c_cpp_properties.json配置如下
    • 需要注意的是compilerPath是自己的编译器地址,在同一个bin目录下
{
  "configurations": [
    {
      "name": "GCC",
      "includePath": ["${workspaceFolder}/**"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "windowsSdkVersion": "10.0.18362.0",
      "compilerPath": "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe",
      "cStandard": "c11",
      "intelliSenseMode": "gcc-x64"
    }
  ],
  "version": 4
}
  • 问题&解决
    • 搭建的时候遇见了两个问题:exe文件找不到
    • gcc找不到
  • 这两个问题的根源都是launch中的配置问题

    • exe文件找不到
    • 在这里插入图片描述
  • 而我的项目结构是有点不一样的在这里插入图片描述

  • 所以路径应该是d:\workspace\IntellijIDEA\leetcode\src\cmcandy\c_language_answers>,因此,解决办法就是修改launch中program的定位具体是这样的

  • 在这里插入图片描述

    • 找不到任务gcc
    • 在这里插入图片描述
    • 这个是因为launch中有个preLaunchTask项需要和task中的label对应
    • 因此需要修改两处,这里我使用的是官方文档推荐的配置(之前用了某博主的,用的是gcc,会有停不了的问题),分别修改以下两处
    • launch.json需要修改的地方:
      在这里插入图片描述
    • task.json需要修改的地方:在这里插入图片描述
  • 效果就是可以debug啦
  • 编译好之后按F5就可以debug了
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰子奶糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值