【Tools】 VSCode Cpp 断点调试环境搭建(极速版)

15 篇文章 2 订阅

用 VSCode 写代码有段时间了,最近项目不忙,才得空学习一下有关用法。现在发现,VSCode 中集成了 Terminal,完全不需要对着一个文件右键,然后选择 Reveal in Explorer,然后再 git bash here,再进行相关操作。直接用 Ctrl + Shift + `(~) 就能打开终端,并且实现 git 操作、编译命令等操作。
工作中经常需要验证一些代码片段是否能够正常运行,或者运行起来之后各变量的变化过程。因此,还经常拿 CodeBlocks 写一段 Cpp 程序进行验证。但是也是因为项目催得紧,一直没好好配置 CodeBlocks 的调试环境。只能加 Log 打印来追踪。
VSCode 如此强大,怎么会不能断点调试呢。于是,最近比着相关 博客 搭建了 VSCode cpp 断点调试环境。本文旨在快速配置,不求甚解。详解过程,可参考本文最后的参考文章。

安装必要软件

VS Code 就不解释了。
LLVM – 安装包选择 Pre-Built Binaries Windows 64 bit安装时直接勾选将 LLVM 添加到系统环境变量 PATH 值中。
LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。
MinGW。连接中的下载需要安装时下载组件。安装时配置可按默认的来。我选的是 x86_64posixseh
安装之后,将安装目录下的 bin 文件夹添加到系统环境变量 path 中。我按照它默认的安装位置来的,所以环境变量中的值为C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\
验证安装成功的方法是打开终端,输入 gcc 或 clang。如有 gcc 和 clang.exe 的报错,即表示环境变量配置成功。(注意,在添加环境变量之前打开的终端里是无法找到 gcc 和 clang 命令的,需要在添加环境变量确认之后打开的终端里才能加载刚刚添加进去的环境变量 path 值。

安装 VS Code 扩展

  • C/C++
  • C/C++ Clang Command Adapter:提供静态检测(Lint),很重要
  • Code Runner:安装后右上角会有个播放按钮,在编辑器切换到 cpp 文件中时点击 播放 按钮即可编译运行程序,编译报错或程序输出在下方的 OUTPUT 对话框里。但是,如果程序陷入死循环,或者进入 system(“pause”),之后,该如何断开暂时没看到头绪。

配置文件

在合适的位置创建工程文件夹,右键使用 VS Code 打开该文件夹。在 VS Code 资源管理器界面中项目文件夹下创建 .vscode 文件夹(注意前面的 点 )和主cpp文件。在 .vscode 文件夹中创建三个文件:c_cpp_properties.jsonlaunch.jsontasks.json。(settings.json 文件可有可无。有时间需要再深入了解一下这些 json 文件的原理和具体细节)。这几个文件按如下编写:

c_cpp_properties.json
{ // 以下是我的配置写法,注意将 7~12 和 24~29 的路径替换为 mingw 的安装路径
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1",
                "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1",
                    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/x86_64-w64-mingw32/include"
                ]
            },
            "limitSymbolsToIncludedHeaders": true,
            "databaseFilename": "",
            // (⊙o⊙)… 这个路径我没注意。。。
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe"
        }
    ],
    "version": 4
}
launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)",                 // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg",                           // 配置类型,这里只能为cppdbg
            "request": "launch",                        // 请求配置类型,可以为launch(启动)或attach(附加)
            "launchOptionType": "Local",                // 调试器启动类型,这里只能为Local
            "targetArchitecture": "x86",                // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
            "program": "${file}.exe",                   // 将要进行调试的程序的路径
            "miDebuggerPath":"C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
            "args": ["blackkitty",  "1221", "# #"],     // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false,                       // 设为true时程序将暂停在程序入口处,一般设置为false
            "cwd": "${workspaceRoot}",                  // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
            "externalConsole": true,                    // 调试时是否显示控制台窗口,一般设置为true显示控制台
            "preLaunchTask": "g++"                    // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc。与 tasks.json 中的 label 对应
        }
    ]
}
tasks.json
{ // 注意 command 和 cwd 位置的修改
    "version": "2.0.0",   // 不同版本的 vscode 可能需要不同的 version,不同的 version 的编写风格不同
    "tasks": [
        {
            "label": "g++",   // 与 launch.json 中的 preLaunchTask 对应。
            "type": "shell",
            "command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${file}.exe"
            ],
            "options": {
                "cwd": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ]
        }
    ]
}
test.cpp
#include <iostream>
using namespace std;

int main()
{
    int a = 4;
    int b = 7;
    cout << "Hello world!" << endl;
    cout << a + b;
    return 0;
}

从编辑器的行号左侧第 7 行点个断点,然后 按 F5,就可以进入断点调试啦!

参考文章:
Win10+VsCode的C/CPP编译环境搭建
VSCode安装,配置,编译运行C++(详细整理)
整理:Visual Studio Code (vscode) 配置C、C++环境/编写运行C、C++(主要Windows、简要Linux)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

深海Enoch

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

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

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

打赏作者

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

抵扣说明:

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

余额充值