在 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?
我有:
- 尝试卸载 C/C++ 扩展并重新安装。没有效果。
- 已确认我附加到正确的进程。
- 也重新启动了进程,以进行新的附加。
这个问题没有真正答案的原因是调试能力是由于您添加的扩展。无法设置断点,可能是由于该扩展中的某些错误。
解决方法:
您不需要在 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 并尝试一下也是值得的。
直到上周,我才能够在 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?
我有:
- 尝试卸载 C/C++ 扩展并重新安装。没有效果。
- 已确认我附加到正确的进程。
- 也重新启动了进程,以进行新的附加。
这个问题没有真正答案的原因是调试能力是由于您添加的扩展。无法设置断点,可能是由于该扩展中的某些错误。
解决方法:
您不需要在 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 并尝试一下也是值得的。