Debugging Wizard 是一款面向各类代码库的专家级调试技能,用以系统化地隔离和解决问题。
主要能力
- 解析错误消息,沿调用栈追踪执行流。
- 关联日志条目以识别失败点。
- 应用假设驱动的系统化调试方法定位根因。
核心工作流程
- 复现:建立一致的复现步骤。
- 隔离:缩小到最小的失败用例。
- 假设并验证:提出可测试的理论,逐条证实或证伪。
- 修复:实施并确认解决方案。
- 预防:添加测试或防护措施防止回归。
参考指南 技能按上下文加载详细指导,包含以下主题:
- 调试工具(references/debugging-tools.md):按语言设置调试器。
- 常见模式(references/common-patterns.md):识别 bug 模式。
- 策略(references/strategies.md):二分查找、git bisect、时间旅行调试。
- 快速修复(references/quick-fixes.md):常见错误解决方案。
- 系统化调试(references/systematic-debugging.md):复杂缺陷、多次修复失败、根因分析。
约束 必须做到:先复现问题;收集完整的错误消息和调用栈;一次只测试一个假设;记录发现以供后续参考;修复后添加回归测试;提交前移除所有调试代码。 不得做:未经验证就猜测;一次做多处改动;跳过复现步骤;假设自己已知原因;在没有防护措施的情况下在生产环境调试;在代码中遗留 console.log 或 debugger 语句。
常用调试命令 Python (pdb): python -m pdb script.py # 启动调试器
pdb 内:
b 42 — 在第 42 行设置断点
n — 单步跳过
s — 单步进入
p some_var — 打印变量
bt — 打印完整调用栈
JavaScript (Node.js): node --inspect-brk script.js # 在首行暂停,附加 Chrome DevTools
在 Chrome 中:打开 chrome://inspect → 点击 "inspect"
Sources 面板:添加断点、监视表达式、单步执行
Git bisect(回归定位): git bisect start git bisect bad # 当前提交有问题 git bisect good v1.2.0 # 最后一个已知良好的标签/提交
Git 检出中间点 — 测试后执行:
git bisect good # 或:git bisect bad
重复,直到 Git 识别出第一个坏提交
git bisect reset
Go (delve): dlv debug ./cmd/server # 构建并附加
(dlv) break main.go:55
(dlv) continue
(dlv) print myVar
输出模板 调试时提供以下内容:
- 根因:具体是什么导致了问题。
- 证据:证明该结论的调用栈、日志或测试。
- 修复:解决问题的代码变更。
- 预防:防止复发的测试或防护措施。
适用场景 适用于任何需要定位并修复代码缺陷的场景,包括复杂缺陷排查、多次修复失败后的根因分析、回归缺陷定位以及常见错误的快速处理。
限制 资料未提供该技能的收费方式、价格、平台支持范围或安装命令等信息。