调试Skill debug

调试技能是一种系统的方法,用于识别、定位和修复软件中的错误和问题。它涵盖问题定义、假设驱动搜索、观察技术、根因分析等关键步骤,适用于代码开发、错误调查、性能问题分析和事故响应。关键词:调试、错误修复、根因分析、软件测试、故障排除、bug定位。

测试 0 次安装 0 次浏览 更新于 3/18/2026

name: debug description: 用于查找和修复错误的全面调试方法(原为调试)。此技能应在调试代码、调查错误、解决问题、进行根因分析或响应事故时使用。涵盖系统重现、假设驱动调查和根因分析技术。当遇到异常、堆栈跟踪、崩溃、段错误、未定义行为或需要调查错误报告时使用。

dot-skills 调试最佳实践

软件工程师的全面调试方法指南,包含 54 条规则,分为 10 个类别,按影响优先级排序。基于 Andreas Zeller 的“为什么程序会失败”研究和学术调试课程。

何时应用

在以下情况下参考这些指南:

  • 调查错误或意外行为时
  • 在开发过程中调试代码时
  • 代码产生错误结果或崩溃时
  • 性能问题需要根因分析时
  • 分诊传入的错误报告并优先修复时
  • 为事故进行根因分析时
  • 审查调试方法或代码中的常见错误模式时

规则类别按优先级

优先级 类别 影响 前缀
1 问题定义 关键 prob-
2 假设驱动搜索 关键 hypo-
3 观察技术 obs-
4 根因分析 rca-
5 工具掌握 中高 tool-
6 错误分诊和分类 triage-
7 常见错误模式 pattern-
8 修复验证 verify-
9 反模式 anti-
10 预防与学习 低中 prev-

快速参考

1. 问题定义(关键)

  • prob-reproduce-before-debug - 在调查前重现错误
  • prob-minimal-reproduction - 创建最小重现案例
  • prob-document-symptoms - 精确记录症状
  • prob-separate-symptoms-causes - 区分症状和原因
  • prob-state-expected-actual - 说明期望与实际行为
  • prob-recent-changes - 首先检查最近更改

2. 假设驱动搜索(关键)

  • hypo-scientific-method - 应用科学方法
  • hypo-binary-search - 使用二分搜索定位错误
  • hypo-one-change-at-time - 一次测试一个假设
  • hypo-where-not-what - 先找到 WHERE 再问 WHAT
  • hypo-rule-out-obvious - 先排除明显原因
  • hypo-rubber-duck - 大声解释问题

3. 观察技术(高)

  • obs-strategic-logging - 使用战略日志记录
  • obs-log-inputs-outputs - 记录函数输入和输出
  • obs-breakpoint-strategy - 战略性地使用断点
  • obs-stack-trace-reading - 从底向上读取堆栈跟踪
  • obs-watch-expressions - 使用监视表达式查看状态
  • obs-trace-data-flow - 追踪系统数据流

4. 根因分析(高)

  • rca-five-whys - 使用 5 个为什么技术
  • rca-fault-propagation - 追踪故障传播链
  • rca-last-known-good - 找到最后已知良好状态
  • rca-question-assumptions - 质疑您的假设
  • rca-examine-boundaries - 检查系统边界

5. 工具掌握(中高)

  • tool-conditional-breakpoints - 使用条件断点
  • tool-logpoints - 使用日志点而不是修改代码
  • tool-step-commands - 掌握单步执行/进入/跳出
  • tool-call-stack-navigation - 导航调用堆栈
  • tool-memory-inspection - 检查内存和对象状态
  • tool-exception-breakpoints - 使用异常断点

6. 错误分诊和分类(中)

  • triage-severity-vs-priority - 区分严重性和优先级
  • triage-user-impact-assessment - 在优先排序前评估用户影响
  • triage-reproducibility-matters - 将可重现性纳入分诊
  • triage-quick-wins-first - 首先识别并交付快速胜利
  • triage-duplicate-detection - 检测并链接重复的错误报告

7. 常见错误模式(中)

  • pattern-null-pointer - 识别空指针模式
  • pattern-off-by-one - 发现差一错误
  • pattern-race-condition - 识别竞态条件症状
  • pattern-memory-leak - 检测内存泄漏模式
  • pattern-type-coercion - 注意类型转换错误
  • pattern-async-await-errors - 捕获异步/等待错误处理错误
  • pattern-timezone-issues - 识别时区和日期错误

8. 修复验证(中)

  • verify-reproduce-fix - 使用原始重现验证修复
  • verify-regression-check - 检查回归
  • verify-understand-why-fix-works - 理解为什么修复有效
  • verify-add-test - 添加测试以防止再次发生

9. 反模式(中)

  • anti-shotgun-debugging - 避免散弹调试
  • anti-quick-patch - 避免未理解的快速补丁
  • anti-tunnel-vision - 避免对初始假设的隧道视觉
  • anti-debug-fatigue - 识别调试疲劳
  • anti-blame-tool - 不要过早责备工具

10. 预防与学习(低中)

  • prev-document-solution - 记录错误解决方案
  • prev-postmortem - 进行无责事后分析
  • prev-defensive-coding - 在边界处添加防御性代码
  • prev-improve-error-messages - 改进错误消息

如何使用

阅读个别参考文件以获取详细解释和代码示例:

完整编译文档

有关所有规则扩展的完整指南: AGENTS.md