使用 Claude Code 调试
使用计划模式、文件引用和精准提示词高效诊断和修复 Bug。
从计划模式开始
按 Shift + Tab 两次进入计划模式。Claude 将以只读方式探索你的代码库——非常适合在不意外修改任何内容的情况下进行诊断:
text
用户点击结账表单的提交按钮时出现
TypeError: Cannot read property 'id' of undefined。
从 @src/pages/Checkout.tsx 追踪调用链,
找出 user 对象可能为 undefined 的位置。确定计划后,切换回普通模式来实施修复。
调试工作流
1. 复现并提供上下文
使用 @ 文件引用向 Claude 提供涉及的具体代码:
text
Bug:访客用户结账失败
预期:无需登录即可下单
实际:提交时出现 TypeError
相关文件:
@src/pages/Checkout.tsx
@src/hooks/useAuth.ts
@src/api/orders.ts2. 深度分析
对于复杂的 Bug,明确说明需要分析的内容:
text
分析 @src/hooks/useAuth.ts 和
@src/api/orders.ts 之间的竞态条件。
订单有时在认证状态解析之前就提交了。3. 用 TDD 修复
让 Claude 先编写一个失败的测试,然后实现修复:
text
在 @src/__tests__/ 中编写一个复现此 bug 的测试:
访客用户在结账提交时出现 TypeError。
然后修复代码使测试通过。
编写后不要修改测试。4. 防止再次发生
text
既然我们修复了 Checkout 中的 user 空值 bug,
代码库其他地方是否存在类似的模式——
user 可能为 undefined 的情况?使用回退撤销错误
如果修复让情况变得更糟,在输入框为空时按 Esc Esc 打开回退菜单。选择回退点后,再选择恢复方式:
- 仅代码(撤销文件更改,保留对话)
- 仅对话(保留代码,撤销最后一轮)
- 两者都恢复(完全重置到该点)
- 从该点向前 / 向后总结(压缩对话历史但保留主线)
调试提示词
- 根因分析:
这个错误的可能根因有哪些? - 追踪流程:
追踪数据从 @src/api/users.ts 到组件的流转路径 - 管道日志:
tail -f app.log | claude -p "总结错误并建议修复方案" - 查找类似问题:
找出所有访问 .id 但没有空值检查的地方
为什么上下文对调试很重要?
使用 AI 进行有效调试的关键在于缩小搜索范围。@ 文件引用和计划模式直接控制进入上下文窗口的内容——这是一个基础的 Agent 设计模式。
延伸阅读
- 精选提示词 — 更多调试和代码审查提示词
- 工作流 — 完整的 Bug 修复工作流
- Advisor — 让更强模型给第二意见
- Cloud Workflows — 重要 PR 使用 Ultrareview
- Hooks — 每次代码更改后自动 lint
继续实践
使用 Claude Code 调试 的核心概念已经读完
如果你想把理解变成可复用的能力,可以到 AgentWay 继续练习