安全模式验证插件问题:Shift+点击(Win/Linux)或code --disable-extensions(macOS/终端),若警告消失则必为插件导致;否则查GPU驱动、权限或VSCode本体。

直接进安全模式验证是不是插件问题
只要 VSCode 启动就疯狂弹警告(比如“扩展宿主意外终止”“安装了不受支持的扩展”),第一反应不是翻日志,而是立刻切断插件干扰。Windows/Linux 按住 Shift 再点图标启动;macOS 或命令行用户直接终端执行 code --disable-extensions。注意拼写是 extensions,不是 extension,也别加引号。
如果安全模式下警告全消失、编辑流畅 → 100% 是某个启用的插件导致;如果还弹,问题在 GPU 驱动、系统权限或 VSCode 本体损坏,不用再折腾插件。
用 Developer: Start Extension Bisect 快速锁定肇事插件
手动禁用几十个插件太慢,还容易漏掉组合冲突(比如 A 和 B 单独没事,一起开就崩)。VSCode 内置的二分排查工具 Developer: Start Extension Bisect 才是真解法:按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入并运行它。
- 它会自动把插件分成两组,禁用其中一组并重启
- 你只需回答“是”(警告复现)或“否”(正常),它就会持续缩小范围
- 通常 3–4 轮就能精准定位到具体插件 ID,比如
ms-python.python或esbenp.prettier-vscode - 排查过程不依赖日志是否完整——哪怕
exthost崩得太早没留痕迹,它也能工作
确认插件 ID 后,别只禁用,要物理删除或换替代品
有些插件(尤其是老版 background、custom-css、vscode-icons-mac)被“禁用”后,仍会在启动时扫描并篡改核心文件(如 workbench.css),触发“不受支持的扩展”警告。这时禁用只是假象。
更彻底的做法:
- 先用
code --disable-extension ms-python.python验证是否真由该插件引起 - 确认后,去
.vscode/extensions/目录下找到对应文件夹(如ms-python.python-2026.8.1),直接删掉整个文件夹 - 或者换兼容性更好的替代品:比如
background→ 改用background-cover;custom-css→ 改用vscode-custom-css - 别信“降级就能解决”——某些插件 v1.x 版本反而因签名机制更老,更容易被拦截
查 exthost 日志比猜更快,重点盯崩溃前最后一行
光看弹窗文字没用,真正线索藏在 exthost1.log 里。打开命令面板,运行 Developer: Open Logs Folder,进最新日期子目录,打开 exthost1.log。
搜索关键词:Extension host terminated unexpectedly、ERR!、unsupported、patch。往上翻几屏,找崩溃前最后一行调用:
-
TypeError: Cannot read property 'onDidChange' of undefined→ 某插件访问了已销毁对象 -
Failed to load module 'vscode'→ Node.js 环境异常,可能和插件要求的 Node 版本不匹配 -
at augment.*.js:123:45→ 直指augment插件某行 JS 报错 - 日志路径:
%APPDATA%\Code\logs\<日期>\exthost1.log(Windows)、~/Library/Application Support/Code/logs/<日期>/exthost1.log(macOS)
真正麻烦的不是警告本身,而是很多插件把校验或 patch 逻辑写死在激活函数里——只要文件还在 extensions/ 目录下,VSCode 启动时就会扫到并报警,删不干净就永远弹。


















