code --disable-extensions是验证插件问题的首要手段,它跳过所有插件加载逻辑;若启动后正常,则100%为插件导致,否则需排查系统或VSCode本体;再用Developer: Start Extension Bisect三轮二分定位肇事插件。

用 code --disable-extensions 一招验证是否插件导致问题
只要 VSCode 出现崩溃、右键菜单消失、补全失效、频繁弹 Extension host terminated unexpectedly,第一件事不是翻日志或重装,而是终端执行 code --disable-extensions。它会跳过所有插件加载逻辑——不读 settings.json、不触发任何 activate()、不扫描 .vscode/extensions.json。如果此时一切正常,那问题 100% 出在插件层;如果还崩,就得查系统权限、GPU 驱动或 VSCode 本体损坏。
用 Developer: Start Extension Bisect 三轮锁定唯一肇事插件
别手动禁用几十个插件,VSCode 内置的二分法工具才是真解法:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入并运行Developer: Start Extension Bisect - 它自动把启用插件分成两组,禁用其中一组后重启,问你“问题是否复现”
- 你只答“是”或“否”,3–4 轮后直接给出类似
The extension causing the issue is 'ms-python.python'的结论 - 比“逐个启用”更准——能避开 A 和 B 单独没事、一起开就崩的组合冲突
看 Developer: Open Extension Host Log 找最后一行 ERROR
日志里藏着最硬的线索,尤其当崩溃快到连命令面板都打不开时:
- 运行
Developer: Open Extension Host Log,滚动到底部找最后一行带ERROR的记录 - 重点关注路径中的插件 ID,比如
/home/user/.vscode/extensions/ms-python.python-2026.3.1/dist/extension.js——ms-python.python就是目标 - 常见错误模式:
Cannot read property 'onDidChangeTextDocument' of undefined(访问已销毁对象)、Failed to load module 'vscode'(Node.js 环境异常) - 若日志为空,说明崩溃发生在日志初始化之前,必须退回
code --disable-extension命令行阶段
检查 Developer: Show Running Extensions 看谁在后台卡住
有些插件看似禁用了,其实还在 exthost 进程里占着资源:
- 运行
Developer: Show Running Extensions,重点看两列:Activation Time和Status -
Activation Time > 1000ms的插件大概率是语言服务器类(如Vue.volar、ms-python.pylance)加载卡死 -
Status显示Activation failed,往往因为依赖版本不匹配(比如 Pylance 要求 Python 插件 ≥ 2026.2) - 打开任务管理器,筛选
exthost进程,观察哪个插件启用后 CPU 或内存突增、进程消失
spawn 外部进程,而路径含空格、中文或权限不足会导致静默失败——这种错误不会出现在 UI 提示里,只藏在 exthost.log 末尾。


















