直接重启 extension host 可立即恢复语法高亮、补全等功能且保留当前文件、终端和调试会话;按 ctrl+shift+p 或 cmd+shift+p 输入执行 developer: restart extension host 即可,若仍崩溃则需通过 code --disable-extensions 进安全模式验证是否插件所致,并结合 extension host 日志与开发者工具 console 定位具体扩展。

直接重启 Extension Host 能立刻恢复功能
弹窗出现时别关 VSCode,当前文件、终端、调试会话全都能保留。按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)打开命令面板,输入并执行 Developer: Restart Extension Host。几秒后语法高亮、补全、格式化等功能就回来了。
注意:Restart Extension Host 不重载 settings.json,也不清缓存,只是杀掉并重建 exthost 进程。如果执行完立刻再崩,说明某个扩展在激活阶段就出错了——比如 ms-python.python 找不到 Python 解释器,或 rust-lang.rust-analyzer 加载失败。
用安全模式快速确认是不是插件问题
终端运行 code --disable-extensions(Windows/Linux/macOS 均适用,macOS 需先配置 code 命令)。如果这样启动后不再弹窗,100% 是插件导致;如果还崩,问题大概率出在 VSCode 本体、系统环境(如显卡驱动)或用户配置目录损坏(%APPDATA%Code 或 ~/Library/Application Support/Code)。
常见误操作:只禁用部分插件就下结论。必须彻底隔离所有第三方扩展,才能排除干扰。某些插件(如旧版 ms-vscode.cpptools)甚至会在禁用状态下残留钩子,只有安全模式能真正绕过。
看 Extension Host 日志比瞎猜快十倍
按 Ctrl+Shift+U 打开「输出」面板,右上角下拉选 Extension Host,滚动到底部找最近的 ERROR 行。重点关注:
-
Failed to activate extension 'ms-python.python'—— 直接暴露肇事 ID -
Activating extension 'bradlc.vscode-tailwindcss' failed—— 激活阶段就挂了 -
Cannot find module 'vscode-languageclient'—— 依赖缺失,可能是离线安装未补全 -
FATAL ERROR: Ineffective mark-compacts near heap limit—— Node.js 内存吃满,不是插件代码 bug,而是堆内存溢出
日志路径可直接访问:%APPDATA%Codelogs\exthost1.log(Windows)、~/Library/Application Support/Code/logs//exthost1.log(macOS)。别只盯着弹窗文字,线索全在里面。
开发者工具 Console 里藏着底层崩溃信号
按 Ctrl+Shift+I(macOS 是 Cmd+Option+I)打开开发者工具,切到 Console 标签页,等下次弹窗出现时立刻看顶部新刷出的报错:
-
FATAL ERROR: Ineffective mark-compacts near heap limit→ 内存不足,需查哪个插件驻留大量 AST 或监听数万文件 -
SIGSEGV或Code: null Signal: SIGSEGV→ 原生模块(如 Python、Rust 扩展)访问非法内存地址 -
at ExtensionHostProcess._onExtProcessError下一行紧跟着的扩展 ID 就是元凶
如果 Console 空空如也,说明错误没走到 JS 层,得回「输出」面板或用 code --log-extension-host-stdio 捕获更底层日志。很多崩溃根本不会在 Console 显示,只在进程退出码里——比如 Signal: SIGBUS 这类信号级错误,必须靠日志定位。











