开发与工程 ✓ Microsoft · 官方 crash-symbolicationcrash-dumpelectron-minidumpbreakpad-symbolsvscodedebugging

VS Code 崩溃转储符号化

将原生 VS Code 崩溃转储转换为带方法名的可读回溯。

FollowSkills 评估 · FSRS-2.0
不推荐
53/ 100 五分制 2.7 / 5
信任安全16 / 25 · 3.2/5

技能明确限定为 VS Code 团队成员、macOS/Linux,并披露会从公共符号服务器下载数据及访问私有 GitHub 仓库;命令主要读取转储、下载符号并写入本地缓存,没有明显破坏性默认操作。扣分原因是未要求执行下载或访问私有仓库前进行用户确认,也未充分说明崩溃转储可能包含敏感信息、网络数据流和凭据隔离/回滚措施。

可靠稳定9 / 20 · 2.3/5

流程从初次符号化、匹配 debug-id、复制符号到重试和结果解读,内部较一致,并覆盖缺失符号、网络错误、runtime.node 和第三方模块等异常情况。扣分原因是本次仅静态阅读,没有关键路径执行证据;全局安装、GitHub CLI、平台工具和缓存布局均依赖环境,部分失败诊断仍需用户自行判断。

适用触发8 / 15 · 2.7/5

触发条件、输入文件、目标输出和团队成员限制较清楚,也提供远程 Linux/gdb 分支。扣分原因是适用范围受 macOS/Linux、内部符号权限和外部 npm/GitHub 服务限制;Windows 用户不能直接运行工具,且未提供中文说明或中国大陆网络可达性替代方案。

规范维护9 / 15 · 3.0/5

文档分为前置条件、步骤、结果解读、崩溃生成和提示,包含命令示例、已知符号限制、缓存路径和 MIT 许可证/官方仓库上下文。扣分原因是 electron-minidump 未固定版本,缺少专门的版本记录、变更日志、维护责任人和明确更新路径,且全局安装带来未声明的依赖管理假设。

有效结果7 / 15 · 2.3/5

对拥有匹配转储、符号和权限的 VS Code 团队成员,流程能够直接产出带方法名的回溯,并指导按模块和进程判断根因;还说明无法符号化时的降级结果。扣分原因是静态审查无法验证实际输出,匹配符号、私有仓库访问和人工分析成本较高,且很多模块仍可能只能得到模块级归因。

证据核验4 / 10 · 2.0/5

技能提供了可审计的命令、debug-id 目录结构、符号包命名和结果判读规则,仓库也明确了 Microsoft/MIT 背景。扣分原因是没有该技能专属的提交测试、CI 覆盖、固定依赖或第三方执行报告;结论主要依赖文档自身,静态证据覆盖有限。

证据充分度: 评估于 2026年7月20日 审查版本 5b3e1be7be9e
使用前请注意
  • 崩溃转储可能包含路径、模块和进程信息;在上传、共享或发送给外部服务前应先审查并脱敏。
  • 执行 npm 全局安装、符号下载和 gh 私有仓库访问前应确认网络、凭据范围和组织授权。
  • 文档要求 macOS/Linux,但示例包含 Windows 符号;Windows 用户需要在受支持主机上处理转储。
  • npm/GitHub 服务在中国大陆网络环境下可能不可达,技能未提供镜像、离线包或替代下载路径。
查看完整评分方法 →

它能做什么 & 适用场景

此技能专门处理 VS Code 原生崩溃转储文件(.dmp),使用 electron-minidump 生成可读的符号化回溯。它会检查缺失的模块符号,并指导用户从匹配的 Electron 发布源获取和缓存 .sym 文件。该流程仅面向 VS Code 团队成员,并要求在 macOS 或 Linux 上运行;Windows 上无法运行 electron-minidump。它还帮助根据崩溃模块和进程类型判断问题更可能属于 VS Code/Electron、操作系统组件还是第三方注入软件。

读取 .dmp 崩溃转储文件,运行 electron-minidump crash-file.dmp 并将符号化结果写入日志;检查回溯中缺少方法名的模块;从 microsoft/vscode-electron-prebuilt 或 electron/electron 的发布中获取匹配的符号压缩包;将具有精确 debug-id 的 .sym 文件复制到 electron-minidump 的 Breakpad 缓存;重新运行符号化并分析顶层崩溃帧、模块和进程。对于 Linux 远程扩展主机崩溃,它另外提供使用 core dump 和 gdb 收集回溯的流程。

  1. VS Code 团队成员拿到一个原生 `.dmp` 文件,需要补充缺失的方法名。
  2. Insiders 或 Stable 构建发生崩溃,需要从内部 Electron 发布中获取匹配的符号文件。
  3. Code - OSS 构建发生崩溃,需要使用 electron/electron 的公开发布符号。
  4. 回溯包含 antivirus、VPN、代理或 shell 扩展 DLL,需要判断第三方注入模块是否为根因。
  5. 扩展主机在现代 Electron 中崩溃,报告显示为 `node.mojom.NodeService` utility 进程。
  6. Linux 远程服务器的扩展主机发生原生崩溃,需要改用 core dump 和 gdb 分析。

优缺点一览

优点
  • 提供从初次符号化、获取符号、匹配 debug-id 到复核结果的完整流程。
  • 覆盖 Insiders/Stable 内部 Electron 符号和 Code - OSS 公开 Electron 符号。
  • 不仅关注方法名,还解释如何根据模块和进程判断可能的第三方注入软件。
  • 说明网络下载失败、符号缓存和缺少公开符号时的处理方式。
局限
  • 仅面向 VS Code 团队成员,Insiders/Stable 符号需要私有仓库访问权限。
  • 要求 macOS 或 Linux;electron-minidump 不在 Windows 上运行。
  • 符号必须与转储中的 debug-id 精确匹配;同版本但不同构建流程的压缩包也可能无法使用。
  • runtime.node、操作系统模块和第三方模块经常没有公开符号,因此不一定能得到所有方法名。
  • README 和技能文件没有记录单个技能在 Agent 客户端中的安装方式或测试套件。

如何安装

仓库 README 未说明如何将单个技能安装到某个 Agent 客户端中。使用该流程前,先在 macOS 或 Linux 上全局安装 electron-minidump:

npm install -g electron-minidump

处理 Insiders/Stable 符号时,还需要已认证并有权访问 microsoft/vscode-electron-prebuilt 的 GitHub CLI:先确认 gh auth status 显示已登录。该技能所在的 VS Code 仓库源代码采用 MIT 许可证。

如何使用

触发示例:"请符号化这个 VS Code 崩溃转储,并判断崩溃模块和进程。"

  1. 准备一个 .dmp 文件。
  2. 执行 electron-minidump crash-file.dmp > symbolicated-output.log
  3. 查看日志顶部回溯,确认哪些模块缺少方法名;网络下载暂时失败时,重复运行同一命令,因为已下载的符号会被缓存。
  4. 按崩溃构建选择符号源:Insiders/Stable 使用 microsoft/vscode-electron-prebuilt,Code - OSS 使用 electron/electron
  5. 将与缓存要求的模块和 debug-id 完全匹配的 .sym 文件复制到 $(npm root -g)/electron-minidump/cache/breakpad_symbols 下的对应目录。
  6. 再次运行 electron-minidump crash-file.dmp > symbolicated-output.log,然后根据顶层崩溃帧、模块名和进程标记读取结果。

如果没有转储文件,可运行 code --crash-reporter-directory <absolute-path>;Insiders 使用 code-insiders,复现崩溃后在指定目录查找 .dmp 文件。

对比同类

对于 VS Code 本地原生 .dmp,该技能使用 electron-minidump;对于 Linux 远程扩展主机的原生崩溃,文档明确改用 core dump 和 gdb,而不是 electron-minidump。

常见问题

我可以在 Windows 上运行这个技能吗?
不能。技能要求 macOS 或 Linux,因为 electron-minidump 不在 Windows 上运行;崩溃本身可以来自 Windows 构建,但符号化流程需要在支持的平台上执行。
为什么添加了同版本符号后仍然没有方法名?
Breakpad 按模块、PDB 名称和精确 debug-id 匹配符号。同版本但来自不同构建流程的符号可能具有不同 debug-id;runtime.node 和第三方或操作系统模块也可能根本没有公开符号。
处理 Insiders 或 Stable 转储需要什么权限?
需要 VS Code 团队成员身份,以及已认证的 GitHub CLI 对私有 `microsoft/vscode-electron-prebuilt` 仓库的访问权限;普通浏览器或未认证的 curl 请求会返回 404。
符号化失败时应该先检查什么?
先重试命令以处理临时下载错误;然后确认符号压缩包的质量、平台、架构和模块 debug-id 与 electron-minidump 缓存要求完全一致。

同仓库的其他 Skills

均来自 microsoft/vscode

开发与工程 ✓ Microsoft · 官方

工具重命名兼容性检查

防止内置工具重命名破坏现有提示词与工具配置。

开发与工程 ✓ Microsoft · 官方

Copilot Chat OpenTelemetry 埋点指南

为 Copilot Chat 统一设计和维护 OpenTelemetry 埋点。

开发与工程 ✓ Microsoft · 官方

VS Code 配置策略维护助手

规范 VS Code 企业配置策略的注册、导出与验证。

设计与前端 ✓ Microsoft · 官方

VS Code 设计哲学

用价值、原则和设计动作,把“看起来不对”转化为可执行的界面改进。

开发与工程 ✓ Microsoft · 官方

Agent 主机端到端测试助手

用严格的回放夹具维护 VS Code Agent 主机端到端测试。

开发与工程 ✓ Microsoft · 官方

VS Code 集成浏览器架构指南

帮助开发者安全理解和修改 VS Code 集成浏览器的跨进程架构。

开发与工程 ✓ Microsoft · 官方

VS Code Agents 窗口会话架构

帮助代理安全实现和修复 VS Code Agents 窗口功能。

开发与工程 ✓ Microsoft · 官方

智能提交助手

根据仓库惯例生成提交信息并安全提交代码变更。

开发与工程 ✓ Microsoft · 官方

Agent Host 日志分析

定位 Agent Host 导出日志中的会话、传输与主机问题。

开发与工程 ✓ Microsoft · 官方

VS Code 单元测试助手

在 VS Code 源码仓库中按文件、测试名称或匹配模式运行单元测试。

开发与工程 ✓ Microsoft · 官方

VS Code Agent 定制助手

帮助创建、修复和排查 VS Code Agent 定制文件及其加载问题。

开发与工程 ✓ Microsoft · 官方

Code OSS 启动与调试

为 VS Code 源码构建提供隔离启动、Playwright 自动化和多进程调试端口。

开发与工程 ✓ Microsoft · 官方

VS Code 无障碍开发助手

为 VS Code 交互式功能提供可执行的无障碍实现规范。

设计与前端 ✓ Microsoft · 官方

VS Code CSS 布局规范

用 VS Code 规范构建稳健的 CSS 布局与文本截断体验

开发与工程 ✓ Microsoft · 官方

VS Code Chat 性能实验室

基准测试聊天渲染性能,并检测会话中的内存泄漏。

开发与工程 ✓ Microsoft · 官方

组件夹具与截图测试

帮助你为 VS Code 组件创建稳定、可主题化的截图测试夹具。

开发与工程 ✓ Microsoft · 官方

VS Code 冒烟测试助手

运行、筛选并调试 VS Code 端到端冒烟测试。

开发与工程 ✓ Microsoft · 官方

VS Code 本地 Web 工作台

在本地 vscode.dev 中验证 VS Code 工作台和 Agents 窗口改动。

开发与工程 ✓ Microsoft · 官方

反馈执行器

读取当前会话反馈并落实对应代码修改。

开发与工程 ✓ Microsoft · 官方

VS Code 聊天定制编辑器开发技能

帮助开发者安全修改并测试 VS Code 的聊天定制管理界面。

相关 Skills