vscode配置cpp调试环境

本文档介绍了如何在Visual Studio Code(VSCode)中配置C++的调试环境,包括安装C/C++插件,创建并配置c_cpp_properties.json, tasks.json和launch.json文件,确保能够正确编译和调试C++代码。" 112192024,10546831,Flannel网络插件详解:etcd在Kubernetes中的应用,"['Kubernetes', '网络插件', 'etcd', '容器网络', 'Flannel']

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

写在前面

虽然平日几乎用不到cpp,但还是想用cpp刷刷题。打算在vscode中配置cpp的调试环境。这篇文章说的是Mac的相关配置,如果是windows的可以参考其他文档。废话不多说,开始我们的cpp调试环境配置吧。

准备工作

基本的工作可以参考vscode的官方文档,里面有详细的配置,这里简述一下。

  1. 安装C/C++插件
  2. 添加c_cpp_properties.json配置文件
  3. 添加tasks.json配置文件
  4. 添加launch.json配置文件

安装C/C++插件

打开插件页面,搜索输入C/C++搜索C/C++插件。
在这里插入图片描述
安装该插件后,使用vscode打开包含cpp文件的文件夹时,vscode会添加.vscode子文件夹到目录中。

添加c_cpp_properties.json配置

通过快捷键⇧⌘P运行C/Cpp: Edit configurations,添加缺失的c_cpp_properties.json文件。默认的添加的文件如下:

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

这个部分没有做什么调整。采用的是默认添加的文件。

添加tasks.json配置文件

通过快捷键⇧⌘P选择执行的命令,选择Task: Configure Task命令,选择Create tasks.json from templates,选择Others来创建一个外部命令。根据自己的编译器更换commnd选项。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "cpp",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "a.out"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

这里需要说一点,希望对当前标签页的代码进行编译执行,因此args参数中用的是${file}。另外需要说的一点是,如果不指定输出的编译文件,会影响调试。可以参考github上的一个issue。所以这里用的命令等于是(假设当前的文件是question.cpp):

>> g++ -g question.cpp -o a.out

当然也可以把args中的a.out替换为${file}保持和文件名的对应。

添加launch.json配置文件

在调试界面点击运行,会提示添加launch.json配置文件。其定义了启动调试文件的相关属性。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "cpp"
        }
    ]
}

这里需要说明的有三个参数:

  1. program参数,这里的文件名要和之前的保持对应,如果前面用的a.out,这里也应该是a.out。
  2. externalConsole参数,悬停在上面会有说道,如果是linux等系统,将其置为false时,将会在vscode集成内输出打印内容。如果是true的话,会在外部的终端输出。为了在vscode看输出,这里设置其为false.另一个需要留意的是参数externalConsole,悬停在上面会有说道,如果是linux等系统,将其置为false时,将会在vscode集成内输出打印内容。如果是true的话,会在外部的终端输出。为了在vscode看输出,这里设置其为false.
  3. preLaunchTask参数,因为每次调试都需要预先对代码进行编译,这里可以通过preLaunchTask参数指定编译任务。这里将其指定为之前的任务: cpp. 即之前task的label中的内容。

运行效果

如下是打断点调试的示例图:
在这里插入图片描述
可以看到输出:
在这里插入图片描述

写在最后

其实来来回回配置了好几次vscode的cpp调试环境(每换一个工作目录就要重新配置一次),基本上都是到处搜索博客。现在自己记录下来,也省的再乱搜了。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值