直接查看exthost日志末尾error行,交叉验证console和输出面板对应插件日志,可锁定90%异常;用developer: open extension host log打开实时日志,定位加载、激活、通信失败链路;重点关注activation time >1000ms且status为activation failed的插件;手动切换输出面板语言模式为log并开启自动换行,确保错误关键词可搜、堆栈完整。

直接看 exthost 日志末尾的 ERROR 行,再交叉验证开发者工具 Console 和输出面板里对应插件的日志,基本能锁定 90% 的插件异常。
打开 Developer: Open Extension Host Log 看崩溃源头
这个命令打开的是扩展主机进程的实时日志,比 UI 上“禁用全部扩展”更早、更底层。它记录了每个插件加载、激活、通信失败的完整链路。
- 按
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入并选择Developer: Open Extension Host Log - 日志文件名通常是
exthost1.log或带时间戳的最新exthost*.log,路径在%APPDATA%\Code\logs\(Windows)、~/Library/Application Support/Code/logs/(macOS)或~/.config/Code/logs/(Linux) - 重点翻到最后 20 行,找带
ERROR或Failed to activate的行,里面会明确写出插件 ID(如ms-python.python)和出错的 JS 文件路径(如dist/extension.js:1234) - 如果日志为空或只有启动头几行,说明崩溃发生在扩展主机初始化之前,必须退回命令行阶段用
code --disable-extensions启动
用 Developer: Show Running Extensions 找卡住的插件
这个命令列出所有已加载但未必激活成功的插件,能暴露那些“假装正常”实则挂起的扩展。
- 运行
Developer: Show Running Extensions,弹出表格里重点关注三列:Activation Time、Status、Runtime -
Activation Time > 1000ms且Status是Activation failed或空白的,大概率就是问题源 - 某些插件(比如旧版
ms-python.python或bradlc.vscode-tailwindcss)会在激活时尝试 spawn 外部进程(如tailwindcssCLI),若路径含空格、中文或权限不足,会静默失败——错误不会出现在 UI,只藏在exthost日志末尾 - 右键点击可疑插件可快速禁用,但注意:这只是写配置,不能绕过早期注入;真正要确认是否是它导致崩溃,得用
code --disable-extension ms-python.python单独测试
别信输出面板的下拉框,先手动切对语言模式
很多插件(如 Databricks、Pylance、ESLint)把日志打到输出面板,但如果你没手动切换语言模式,VS Code 就当纯文本处理,关键字段(如 ERROR、WARN、时间戳)不会高亮,也搜不到结构化内容。
- 打开输出面板(
Ctrl+Shift+U),从右上角下拉框选中插件名(如Databricks 日志) - 右键日志内容 →
Change Language Mode→ 选Log(不是Plain Text) - 若日志后缀不是
.log(比如app.out),需进设置搜files.associations,加一行:"*.out": "log" - 此时再用
Ctrl+F搜ERROR或具体报错关键词(如EOF、EACCES、spawn unknown system error -86),效率提升明显
终端无响应?先关掉自动换行再查日志截断
长日志行被截断后,你根本看不到完整的堆栈路径、trace_id 或错误原因,这是排查中最容易被忽略的细节。
- 打开日志文件后,按
Alt+Z(Windows/Linux)或Option+Z(macOS)开启editor.wordWrap: "on",避免关键信息丢失 - 如果日志来自远程开发(如 SSH 或容器),检查是否用了代理但未透传环境变量:
env HTTPS_PROXY=http://x.x.x.x:8080 code启动 VS Code 才能确保插件网络调用走代理 - 训练脚本或子进程日志不显示?大概率是缓冲问题:在 Python 脚本里加
sys.stdout.flush(),或直接用python -u train.py启动,-u参数强制无缓冲输出











