| name | debug |
| description | 当用户遇到复杂 bug、问题反复出现、找不到原因时使用 — 用科学方法逐步排查,禁止猜测性修复 |
系统化调试
用科学方法排查问题,不要猜、不要碰运气。每一步都要有证据支撑。
核心原则
- 禁止「改一下试试看」— 每次修改必须基于明确的假设
- 禁止跳步 — 必须按顺序执行每个步骤
- 记录每一步的发现 — 避免兜圈子
步骤
1. 理解问题
询问用户:
遇到了什么问题?可以描述现象、贴报错信息、或者告诉我哪个功能不正常。
收集信息:
- 错误信息(完整的报错日志或截图)
- 什么时候开始出现的
- 之前做了什么改动
- 期望的行为是什么
2. 复现问题
- 找到相关的代码文件,阅读并理解上下文
- 尝试复现问题(运行代码、运行测试)
- 确认问题确实存在,记录复现步骤
如果无法复现,告诉用户并请求更多信息。不要在无法复现的情况下猜测修复。
3. 定位根因
- 根据错误信息和代码逻辑,提出假设
- 用最小范围的验证来确认或排除假设(加日志、断点、单元测试)
- 如果第一个假设不成立,记录原因,提出下一个假设
- 缩小范围直到找到根因
记录格式:
假设 1:xxx
验证:xxx
结果:确认 / 排除(原因:xxx)
4. 修复
- 用最小改动修复问题
- 解释改了什么、为什么这样改
- 运行测试确认修复有效
- 检查修复是否可能引入新问题
5. 验证
- 重新运行复现步骤,确认问题已解决
- 运行完整测试套件,确认没有破坏其他功能
- 告诉用户修复完成,总结根因和修复方案