Mac升级到Catalina后导致VSCode无法断点调试

概述

特么真心属于手贱,将 Mac 电脑的操作系统进行了升级,升级为 Catalina,导致了一堆问题。VSCode 编写的 C++ 代码无法再进行断点调试,这就属于其中之一。真心欲哭无泪,又不知道如何倒退 OS 版本。经过一通 Google,最终在大神的分享下解决了问题。

问题现象

在 C++ 代码中,加上断点,想调试。而实际效果就行运行,就是断点根本不起作用了。

问题原因

通过查找 VSCode 的官方文档,VSCode 给出了一个模糊的回答,可能是因为 Mac 原来使用的 lldb 给删除了。有兴趣可以看这个 https://code.visualstudio.com/docs/cpp/config-clang-mac。文档上提到了一个 Issue 3829,https://github.com/microsoft/vscode-cpptools/issues/3829,有兴趣自己看。

解决方法

使用官方提供的 CodeLLDB。

安装 CodeLLDB 插件

在 VSCode 插件里,找到 CodeLLDB,如下图。安装这个插件。

离线安装包

我在 VSCode 插件中安装的时候,说不能安装,好像是签名还是什么,当时没有截图。要求我下载 vsix 离线安装包。

很简单,下载这个离线安装包,然后在插件中选择“从 VSIX 安装”即可。如下图。

修改 launch.json

在 launch.json 文件中,添加以下内容。

        {
            "name": "clang++ build and debug active file",
            "type": "lldb",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}.out",
            "args": [],
            "cwd": "${workspaceFolder}",
            "preLaunchTask": "clang++ build active file"
        }

修改 tasks.json

在 tasks.json 文件中,添加以下内容。

        {
            "label": "clang++ build active file",
            "type": "shell",
            "command": "clang++",
            "args": [
                "${fileBasename}",
                "-o",
                "${fileBasenameNoExtension}.out",
                "-g"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }        

然后选择 clang++ build active file 这个选项,进行调试就好了。

彩蛋

原来 Mac 下 VSCode 一直没法显示 STL 变量的数据,现在用了 CodeLLDB 后,竟然可以显示 STL 变量的数据了,也算是一个福利吧。

发布了268 篇原创文章 · 获赞 309 · 访问量 108万+

猜你喜欢

转载自blog.csdn.net/justidle/article/details/105157419