DEV Community

alapha888
alapha888

Posted on

报错先别猜:/debug 的 5 步排错法

(整理自完整版 commands/debug.md 实测文本与 /debug 公开 Gist,非本次新实测;/debug 不在 Lite 免费版、只在完整版。)

程序报错了,不知道哪一行的问题;或者功能“有时候行有时候不行”——/debug 只做一件事:系统性排错,先复现再假设,一次只验证一个假设,不靠猜。

5 步:

  1. 复现优先。第一步永远是“写出最小复现步骤”。复现不了就先说“目前无法复现”,列出复现它需要的信息(输入、环境、操作路径),不要直接猜原因。
  2. 列假设。基于报错信息和代码,列出 2–4 个可能原因,按可能性排序。每个假设必须附带“如何验证”(一条命令、一个断点、一段最小测试)。
  3. 一次验证一个。从最可能的假设开始验证;验证失败就划掉、换下一个,不要同时改多个地方。若第一个假设验证即确认根因,剩余假设可标记“跳过”并说明理由,不必为走流程而走流程。
  4. 定位后三问。找到根因后必须回答——①为什么是这里出问题(机制)②为什么之前没发现(测试盲区)③同类问题还有没有(举一反三,grep 同类写法)。
  5. 修完验证。修复后重新跑复现步骤,确认现象消失;再跑一遍相关测试,确认没引入回归。

输出长什么样(取自 debug.md 的格式):现象一句话、复现步骤、假设清单(每条带验证方法)、根因(机制解释加代码位置)、修复(改了什么,为什么这样改)、举一反三(同类写法还有几处,是否要一起修)。

什么时候不要用:报错信息都没看、先来问“怎么办”——先把完整报错贴出来;想一次修好三个不相关的 bug——一个现象开一次 /debug;生产环境正在着火——先止血(回滚/降级),再 /debug 找根因;假设验证需要半天——说明拆得不够小,先把验证成本降下来。

示例要点(取自 debug.md 的输入输出示例):输入是 batch_settle 传入 level 缺失的订单时报 KeyError;复现是传入一条缺 level 的订单;根因是直接取字典键无默认值;修复是取键时给默认值;举一反三是 grep 其他直接取值处。

免费先试:Lite 免费版含 /review、/commit、/test 三条命令,双兼容 Claude Code 与 Codex CLI,见 Lite 仓。
完整版含 /debug 在内的 10 条命令,早鸟 ¥9.90(限前 100 份)/正式 ¥19.90,付款后 12 小时内私信交付,7 天无理由退款。国内账号风控提示:优先用 Codex。

链接(文末三链接):

Top comments (0)