手贱,更新了mac新系统Calalina,第一天发现需要更新某个Xcode命令行环境包(一脸懵)才可以使include不报错。
更新之后的第二天,发现打的断点无效了,调试如同直接运行。
百度没搜到,只有一个知乎的线索,但没多讲。顺藤摸瓜,开始磕VScode官方英语教程,附上链接
https://code.visualstudio.com/docs/cpp/config-clang-mac
很好,你们官方都不直接给出解决方案,还是“possible workarounds”..
顺藤摸瓜,再到github。附上链接
https://github.com/microsoft/vscode-cpptools/issues/3829
七嘴八舌的,终于找到一个解决方案:CodeLLDB。
正文如下
1)VSCode中下载CodeLLDB扩展
2)把launch.json、tasks.json两个配置文件内容更换掉,换成
{
"version": "0.2.0",
"configurations": [
{
"name": "clang++ build and debug active file",
"type": "lldb",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.out",
"args": [],
"cwd": "${workspaceFolder}",
"preLaunchTask": "clang++ build active file"
}
]
}
{
"version": "2.0.0",
"tasks": [
{
"label": "clang++ build active file",
"type": "shell",
"command": "clang++",
"args": [
"${fileBasename}",
"-o",
"${fileBasenameNoExtension}.out",
"-g"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
3)测试断点功能。如果这时候断点还是失效,请删除cpp配置文件c_cpp_properties.json。vscode的配置总是存在着某种千丝万缕的联系,目前还没摸透。或者简单粗暴另起一个文件夹。
最终如图所示
PS:发现CodeLLDB很好用。调试时能显示的变量的内容更加全面,STL容器中的也可以显示了,甚至调试都不需要系统的终端了,在集成终端中就可以输入输出。因祸得福。