热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

VSCode,MacOSCatalina-在C/C++调试时不会在断点处停止

如何解决《VSCode,MacOSCatalina-在C/C++调试时不会在断点处停止》经验,为你挑选了1个好方法。

我试图在Mac上使用VSCode开发的C代码上使断点起作用。

我的代码似乎可以编译并运行良好(由于vscode BTW 上没有'openssl / crypto.h'文件),但是我没有得到任何断点,甚至在开始使用"stopAtEntry": true或附加到正在运行的进程时也没有。

我的tasks.jsonlaunch.json非常标准:

{
    "tasks": [
        {
            "type": "shell",
            "label": "clang build active file",
            "command": "/usr/bin/clang",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-I/usr/local/opt/openssl/include",
                "-L/usr/local/opt/openssl/lib",
                "-lssl",
                "-lcrypto"
            ],
            "options": {
               "cwd": "/usr/bin"
            }
        }
    ],
    "version": "2.0.0"
}

和:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Attach",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/test2",
            "processId": "${command:pickProcess}",
            "MIMode": "lldb"
        },
        {
            "name": "clang build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "clang build active file",
            "logging": {
                "trace": false,
                "traceResponse": false,
                "engineLogging": false
              }
        }
    ]
}

我知道VS代码会忽略c ++调试中的断点以及此处的所有类似讨论。

我的设置是:MacOS Catalina(10.15,生产中)以及XCode 11.1,Visual Studio Code 1.39.0和C / C ++扩展0.26.0-insiders3。

有没有人比我好运?



1> Vaiden..:

因此,显然这是Catalina和XCode 11.x支持的一个已知问题:https : //github.com/microsoft/vscode-cpptools/issues/3829由引起lldb-mi

lldb-mi是位于IDE和lldb API本身之间的驱动程序。

lldb-mi该插件随附的版本似乎与Catalina不兼容,并且XCode 11.x不再兼容lldb-mi

github线程提供了2个临时解决方案:

lldb-mi

第一种解决方案是lldb-mi通过设置的miDebuggerPath属性,使用XCode早期版本附带的launch.json

我碰巧有XCode 10.1,所以我的配置是:

"miDebuggerPath":"/Applications/Xcode 10.1.app/Contents/Developer/usr/bin/lldb-mi",

我设法使基本的调试工作,但是存在兼容性问题。但是事实证明这足以满足我的需求(是的!)。

替代lldb前端

第二种解决方案是使用VSCode-lldb扩展名。

更新到这里

一旦出现,我将保留此答案,并以永久性解决方案更新此帖子。


推荐阅读
author-avatar
mobiledu2502856973
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有