解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题

文章目录

  • 背景
  • 环境
  • 解决办法
    • 新的插件
    • 配置步骤
  • 配置文件文件分享
    • c_cpp_properties.json
    • launch.json
    • tasks.json
  • 参考资料

背景

最近刚考完试,有空来回复一下博客上的评论。在回复一条关于克鲁斯卡尔最短路径算法的评论时,为了能够让回复的内容更直观,决定贴上代码的调试信息(代码是用C写的)。我的电脑是MBP,没有安装XCode,只有Visual Studio Code,于是决定使用它来获取一些调试信息,但是我按照网上的教程配置好调试环境后,一直出现调试进程无法在我打的断点处停下的情况,一闪就过去了。度娘上面搜了好久也没有结果,最后在微软的官方教程上找到的端倪,原来这是Mac OS Catalina 10.15的BUG,也就是调试进程能够认到断点的存在,但是程序就直接运行完退出了。如下图所示:
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第1张图片
上图中红框表明能够认到断点

上图中,退出代码为0,正常退出,没有在断点处暂停。

环境

我的设备环境是

  • Mac os Catalina 10.15.2
  • Visual Studio Code 1.14.1

解决办法

新的插件

解决的办法也很简单,在VSCode的插件中心搜索CodeLLB的插件安装,重启VSCode即可。
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第2张图片

配置步骤

Step1:按住键盘上的⌘ +⇧+P,搜索Debug: Open launch.json
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第3张图片
或者点击左边的小虫子,选择create a launch.json file
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第4张图片
Step2:选择LLDB
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第5张图片
Step3:编写基础配置文件

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]

Step4 :保存配置后⌘+⇧+B编译后即可断点调试
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第6张图片

配置文件文件分享

最后分享一下我的配置文件,希望能帮助到大家
解决Mac OS Catalina下Visual Studio Code对于C/C++语言不能断点调试的问题_第7张图片

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Debug",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "args": [],
            "cwd": "${workspaceFolder}"
        }
    ]
}

tasks.json

{
    "version": "2.0.0",
    "tasks": [
      {
        "label": "Build with Clang",
        "type": "shell",
        "command": "clang++",
        "args": [
          "-std=c++17",
          "-stdlib=libc++",
          "${file}",
          "-o",
          "${fileBasenameNoExtension}.out",
          "--debug"
        ],
        "group": {
          "kind": "build",
          "isDefault": true
        }
      }
    ]
  }

参考资料

  • Using Clang in Visual Studio Code
  • Can’t debug on macOS Catalina (LLDB) #3829
  • vscode-lldb

你可能感兴趣的:(自用消除BUG篇,c++,visual,studio,编辑器)