SuperAPI AI 工具集

debugging

编程与开发

查看项目

更新于 10-16 02:12

技能介绍

Debugging 是一套系统化调试框架,结合了系统化调查、根因追踪、纵深防御校验与验证协议。

核心原则

未先调查根因,不得修复(NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST)。随机修复会浪费时间并引入新缺陷。应先找到根因,在源头修复,在每一层校验,并在宣称成功前完成验证。

适用时机

始终适用于:测试失败、缺陷、异常行为、性能问题、构建失败、集成问题,以及在宣称工作完成之前。

尤其适用于:时间压力下、“快速修复”看起来显而易见时、已尝试多种修复时、尚未完全理解问题时、即将宣称成功时。

四项技术

  1. 系统化调试(references/systematic-debugging.md)

四阶段框架,确保调查到位:

阶段 1:根因调查(阅读错误、复现问题、检查变更、收集证据)

阶段 2:模式分析(寻找可工作的示例、对比、识别差异)

阶段 3:假设与测试(形成理论、最小化测试、验证)

阶段 4:实施(创建测试、一次性修复、验证)

关键规则:完成每个阶段后再进入下一阶段。没有阶段 1,不得修复。

加载时机:任何需要调查与修复的缺陷或问题。

  1. 根因回溯(references/root-cause-tracing.md)

沿调用栈反向追踪缺陷,找到最初的触发点。

技术:当错误出现在执行较深层时,逐层反向追踪,直到找到无效数据的来源。在源头修复,而非在症状处修复。

包含:scripts/find-polluter.sh,用于二分定位测试污染。

加载时机:错误位于调用栈深处、无效数据来源不明时。

  1. 纵深防御(references/defense-in-depth.md)

在数据流经的每一层进行校验,使缺陷无法发生。

四层:入口校验 → 业务逻辑 → 环境防护 → 调试埋点。

加载时机:找到根因后,需要添加全面校验时。

  1. 验证(references/verification.md)

在宣称成功前运行验证命令并确认输出。

铁律:没有新鲜的验证证据,不得宣称完成(NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE)。

运行命令。阅读输出。然后宣称结果。

加载时机:即将宣称工作完成、已修复或通过时。

快速参考

缺陷 → systematic-debugging.md(阶段 1-4) 错误位于栈深处? → root-cause-tracing.md(反向追踪) 找到根因? → defense-in-depth.md(添加分层校验) 即将宣称成功? → verification.md(先验证)

危险信号

若出现以下想法,应停下并遵循流程:

“先快速修复,之后再调查”

“先改一下 X 看看行不行”

“大概是 X,我来修一下”

“现在应该能用了” / “看起来修好了”

“测试通过了,搞定了”

以上都意味着:回到系统化流程。