• VSCode中配置调试C/C++问题汇总---kalrry


    初始准备

    安装MinGW
    问题说明
    配置好环境变量运行
    gcc -v 查看是否安装成功

    一、C/C++初始配置

    VSCode是文本编辑器本身不支持c/c++,需要安装插件实现支持
    常用插件

    C/C++
    C/C++ Extension Pack
    C/C++ Themes
    CMake Tools
    Hex Editor 16进制文件查看编辑插件很强大
    上面都属于微软官方的,无脑安装就可以了
    Code Runner
    可以右键直接运行各种Code Runner支持的语言,非常强大
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    二、调试前需创建配置文件

    在C/C++项目根目录下创建 .vscode 文件夹(必须包含.)
    在 .vscode 文件夹下创建 launch.json 与 tasks.json 两个文件
    在这两个文件中分别写入以下内容:

    1、launch.json

    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
        // "name": "(gdb) Launch",    // 配置名称,将会在启动配置的下拉菜单中显示
        // "type": "cppdbg",         // 配置类型,这里只能为cppdbg
        // "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)
        // "program": "${fileDirname}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
        // "args": [],                // 程序调试时传递给程序的命令行参数,一般设为空即可
        // "stopAtEntry": false,     // 设为true时程序将暂停在程序入口处,一般设置为false
        // "cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
        // "environment": [],
        // "externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
        // "MIMode": "gdb",
        // "miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb64.exe",// miDebugger的路径,注意这里要与MinGw的路径对应
        // "preLaunchTask": "g++",    // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++.exe 生成/调试文件",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false, 
                "MIMode": "gdb",
                "miDebuggerPath": "D:\\Program Files\\mingw64\\bin\\gdb.exe",		/*修改成自己bin目录下的gdb.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
                "setupCommands": [
                    {
                        "description": "为 gdb 启用整齐打印",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "C/C++: g++.exe 生成活动文件"
            }
        ]
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    2、tasks.json

    {
        "tasks": [
            {
                "type": "cppbuild",
                "label": "C/C++: g++.exe 生成活动文件",
                "command": "D:\\Program Files\\mingw64\\bin\\g++.exe", /*修改成自己bin目录下的gdb.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
                "args": [
                    "-fdiagnostics-color=always",
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}\\${fileBasenameNoExtension}.exe"
                ],
                "options": {
                    "cwd": "${fileDirname}"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "detail": "调试器生成的任务。"
            }
        ],
        "version": "2.0.0"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    三、调试c++时会弹出控制台窗口

    只需要在 launch.json 文件中找到

    "externalConsole": true,
    // 调试时是否显示控制台窗口,一般设置为true显示控制台
    // 将true改为false即可
    
    • 1
    • 2
    • 3

    四、调试时候出现“找不到任务C/C++: g++.exe build active file” 解决方法

    请添加图片描述

    这是因为 launch.json 文件中的 preLaunchTask 值与 tasks.json 中 label 值不一样

    1、launch.json 文件中找到

     "preLaunchTask": "C/C++: g++.exe 生成活动文件"
    
    • 1

    2、tasks.json 文件中找到

    "label": "C/C++: g++.exe 生成活动文件",
    
    • 1

    只需要将值改为一样即可解决
    如上面示例 统一改为 “C/C++: g++.exe 生成活动文件”,即可

  • 相关阅读:
    工作纪实38-ES分页数据问题
    WuThreat身份安全云-TVD每日漏洞情报-2023-10-17
    JVM基本常识
    JVM工具
    私有git仓库只支持http情况下go mod tidy 和 go get 默认走https的问题处理 GOINSECURE
    docker容器mysql中文?号,修改编码配置
    傻白入门芯片设计,典型的2D/2D+/2.5D/3D封装技术(六)
    接口自动化测试之HttpRunner测试框架
    Vue 多环境的配置
    记一次 .NET 某数控机床控制程序 卡死分析
  • 原文地址:https://blog.csdn.net/weixin_45406712/article/details/127801972