VS Code更新C/C++扩展v1.10.5后IntelliSense持续卡在更新状态
修复方案
v1.10.5版本的微软官方C/C++扩展存在明确的索引死循环bug,在gcc工具链环境下触发率非常高,和你本地的gcc编译配置本身没有关系,按下面的优先级操作即可恢复正常功能:
1. 最高优先级:回滚扩展到无问题的稳定版本
这是目前用户反馈中100%生效的解决方案,操作步骤:
- 打开VS Code左侧扩展面板,找到已安装的官方
C/C++扩展(发布者为Microsoft) - 点击扩展卡片右下角的下拉箭头,选择「安装其他版本」
- 在弹出的版本列表中选择
v1.10.4,等待安装完成后按照提示重载VS Code窗口 - 功能恢复后记得关闭该扩展的自动更新,避免自动升级回问题版本:点击扩展卡片上的齿轮图标,取消勾选「自动更新扩展」选项即可
2. 临时过渡方案(不回滚版本时使用)
如果暂时不想回退版本,可以修改配置绕过死循环问题:
- 按快捷键
Ctrl+,(macOS系统按Cmd+,)打开VS Code设置面板,搜索配置项C_Cpp.intelliSenseEngine - 将默认的
Default选项修改为Tag Parser,之后重载窗口
注意:该模式下代码补全、静态语法检查的精度会低于默认的IntelliSense模式,仅适合临时使用,等官方推送修复了该bug的v1.10.6及以上版本后,可以切回默认配置获得完整功能
3. 回滚后仍异常的缓存清理操作
如果回滚版本后还是存在持续显示「Updating IntelliSense」的问题,清理损坏的旧索引缓存即可:
- 完全关闭所有VS Code窗口
- 根据你的操作系统,进入对应路径删除缓存:
- Windows:打开资源管理器进入
%APPDATA%\Code\User\workspaceStorage\,删除所有名称包含ms-vscode.cpptools的子文件夹 - macOS:打开访达进入
~/Library/Application Support/Code/User/workspaceStorage/,删除所有名称包含ms-vscode.cpptools的子文件夹 - Linux:打开文件管理器进入
~/.config/Code/User/workspaceStorage/,删除所有名称包含ms-vscode.cpptools的子文件夹
- Windows:打开资源管理器进入
- 重新打开VS Code,等待首次项目索引完成后功能就会恢复正常
补充说明:整个修复过程不需要修改你现有的gcc编译配置,也不需要调整c_cpp_properties.json文件,更不需要重装本地gcc工具链,问题根源完全来自扩展版本本身的代码缺陷
内容的提问来源于stack exchange,提问作者Mohammad Shafiee
相关产品推荐
相关产品推荐

