首先创建.cpp文件,注意要把文件放在文件夹中,才能使用调试功能,否则会出现如下的问题。

然后点击左侧三角形+虫子的按钮,也就是调试按钮,然后点击运行和调试,在上方选择c++(windows)。

之后如果提示如下,那就打开“launch.json”。

将launch.json文件直接全部修改为:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ 调试启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "gdb.exe",
            "setupCommands": [
                {
                    "description": "启用gdb整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "编译C++"
        }
    ]
}

并且在launch.json文件的右下角可以看到“添加配置”的蓝色标志,大部分用户点击后都应该选择“C/C++: (gdb) 启动”。
 

然后点击终端配置任务使用模板创建tasks.json → 选择Others,然后将tasks.json文件直接全部修改为:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "编译C++",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": "absolute",
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

之后就可以开始调试了,在代码中设置好断点(如图第7行左侧的红点,点击该位置就可以设置断点),然后点击,选择下拉菜单的第三个:”C++ 条调试启动“。


本人遇到的问题是,调试了之后,顶部闪出来了一排悬浮按钮,但是很快又消失了。

经过排查,本人发现了问题,是launch.json文件中出现了问题,本人做了如下设置:

"stopAtEntry": false

应该改为:

"stopAtEntry": true

这个stopAtEntry:程序刚进入main函数第一行时,要不要自动暂停调试。

  • true:强制停下,调试界面、控制按钮固定显示;
  • false:不主动停下,顺着代码一路往下跑。

之后又出现了一个问题:
++.cpp放在在D盘里面,但是总是给我跳转到一个下第二张图片的界面,并且路径也不对。

后来我又做了一些修改,把文件夹和文件重命名了,特殊字符都删去了。

然后我还发现了一个很大很大的问题,在cmd中使用where g++,我发现我使用的是cygwin(大概率是之前使用DevC++的时候一块下载的,但是没有加入环境变量),这是linux系统的,而我是windows系统,应该使用的是MinGW-w64(MSYS2).。

简单讲一下cygwin和msys2啥区别:

C++ 这门语言最初是在 Linux/Unix 系统(比如服务器、超级计算机用的系统)上发明和流行的。在 Linux 系统里,天生就自带了 C++ 编译器(g++)和各种辅助工具(比如 makebash 脚本等)。但是,Windows 是一个完全独立的系统,它原生是不认识这些 Linux 工具的。

当开发者想要把 Dev-C++ 这种 IDE 搬到 Windows 上给新手用时,他们发现了一个问题:
如果让用户自己去配置 Windows 下的 C++ 环境,那太复杂了,小白根本搞不定。为了让用户能在 Windows 上像用 Linux 一样丝滑地写 C++ 代码,Dev-C++ 的作者干脆“打包”了一套工具(也就是你看到的 Cygwin 或 MinGW),直接塞进了软件的安装包里。

下来我就试图下载MSYS2,开始在官网下载,但是发现下载了几回都是源码,下的不对,于是根据下面这篇帖子,下载了镜像,本人下载的镜像是”msys2-base-x86_64-20240727.sfx.exe“。

MSYS2快速下载镜像地址_msys2下载-CSDN博客

但是呢,下载还是怪怪的,又找了一篇帖子,如下,这回正常点了。我只按照这篇帖子的前面一小部分下载了msys2。

史上最全msys2下载配置操作步骤-CSDN博客

安装和配置的过程参考下面这篇帖子的第三部分。

VS Code 配置 C/C++ 编程运行环境(保姆级教程)_vscode配置c++环境-CSDN博客

后来力竭了,放弃了,vscode调试c/c++对于我来说太繁琐了,用Devc++一下就成功了。

更多推荐