name: 调试 description: 系统化调试框架,确保在修复之前进行根因调查。包括四阶段调试过程、向后调用栈追踪、多层验证和验证协议。用于遇到bug、测试失败、意外行为、性能问题或在工作完成前声明时使用。防止随机修复、掩盖症状和虚假完成声明。 version: 3.0.0 languages: all
调试
全面调试框架,结合系统化调查、根因追踪、深度防御验证和验证协议。
核心原则
在没有根因调查之前不进行修复
随机修复浪费时间并制造新bug。找到根因,在源头修复,在每一层验证,在声明成功前验证。
何时使用
始终用于: 测试失败、bug、意外行为、性能问题、构建失败、集成问题,在工作完成前声明时
特别当: 时间压力下,“快速修复”似乎显而易见,尝试了多种修复,不完全理解问题,即将声明成功
四种技术
1. 系统化调试 (references/systematic-debugging.md)
四阶段框架确保适当调查:
- 阶段1:根因调查(阅读错误、重现、检查变更、收集证据)
- 阶段2:模式分析(找到工作示例、比较、识别差异)
- 阶段3:假设和测试(形成理论、最小化测试、验证)
- 阶段4:实施(创建测试、一次性修复、验证)
关键规则: 完成每个阶段后再继续。没有阶段1就没有修复。
加载当: 任何需要调查和修复的bug/问题
2. 根因追踪 (references/root-cause-tracing.md)
通过调用栈向后追踪bug以找到原始触发点。
技术: 当错误出现在执行深处时,逐级向后追踪直到找到无效数据起源的源头。在源头修复,而不是在症状处。
包括: scripts/find-polluter.sh 用于二分测试污染
加载当: 错误在调用栈深处,不清楚无效数据起源
3. 深度防御 (references/defense-in-depth.md)
在数据通过的每一层进行验证。使bug不可能发生。
四层: 入口验证 → 业务逻辑 → 环境守卫 → 调试工具
加载当: 找到根因后,需要添加全面验证
4. 验证 (references/verification.md)
运行验证命令并确认输出,然后再声明成功。
铁律: 没有新的验证证据就不声明完成
运行命令。阅读输出。然后声明结果。
加载当: 即将声明工作完成、修复或通过
快速参考
Bug → systematic-debugging.md (阶段1-4)
错误在栈深处? → root-cause-tracing.md (向后追踪)
找到根因? → defense-in-depth.md (添加层)
即将声明成功? → verification.md (先验证)
红色标志
停止并遵循过程如果思考:
- “现在快速修复,稍后调查”
- “只是尝试改变X看看是否工作”
- “可能是X,让我修复那个”
- “现在应该工作了” / “似乎修复了”
- “测试通过,我们完成了”
所有意味着: 返回到系统化过程。