在 Visual Studio 代码 C++ 调试器中设置断点时出错

Error setting breakpoint in Visual Studio Code C++ Debugger

直到上周,我才能够在 VSCode 中的 C++ 代码中设置断点。自从最近两天我尝试将调试器附加到远程进程时,断点变灰了。

将我的鼠标指针放在灰色断点上时,消息显示:

Error setting breakpoint. The debug engine threw an exception.

,如下图所示:


我的 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": [
        {
            "name": "prgAttach",
            "type": "cppdbg",
            "request": "attach",
            "program": "~/JBL/SC-253/bin/azg",
            "processId": "${command:pickProcess}",
            "MIMode": "lldb"
        },
        //Followed by other debug configurations...
    ]
}

我的平台信息,从代码 > 关于 Visual Studio 代码获得,是:

Version: 1.41.1
Commit: 26076a4de974ead31f97692a0d32f90d735645c0
Date: 2019-12-18T14:57:51.166Z
Electron: 6.1.5
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Darwin x64 18.7.0

还有其他人熟悉这个问题吗?任何 suggestions/workarounds?

我有:

这个问题没有真正答案的原因是调试能力是由于您添加的扩展。无法设置断点,可能是由于该扩展中的某些错误。


解决方法:

您不需要在 Visual Studio 代码中使用到目前为止一直在使用的调试器。由于 IDE 受到大量扩展支持,您可以找到并安装另一个调试器并修改 launch.json 以使用新安装。

在撰写此答案时,只需在 Extensions: Marketplace 的搜索选项卡中键入 lldb(Mac 键盘快捷键 - shiftcommandK) 列出了您可以安装的大约七种可能的调试扩展,其中三个属于 C/C++.


无论您安装哪个调试扩展,都会有一个快速入门或类似的指南,解释如何修改 launch.json 以启用新扩展的调试。删除或注释掉旧调试器的配置条目,以免它造成干扰。

我感觉你的问题可能与此有关(你没有提供完整的平台信息):https://github.com/microsoft/vscode-cpptools/issues/3829

LLDB 本身仍然有效,它只是在 VS Code 中被破坏,但根据 link 正在修复中。

重新生成 launch.json 并尝试一下也是值得的。