自动化 Bug 定位与修复
快速定位隐蔽 Bug 的根因并施加经过验证的修复。OpenCode 会读取堆栈跟踪、追踪执行路径,并提出针对性改动。
何时使用此案例
- 有堆栈跟踪或失败的测试,但没有明确原因。
- Bug 是间歇性的,或涉及并发。
- 想要一个带说明的修复,而不是猜测。
前置配置
- 失败的测试用例,或可靠的复现步骤。
- 在项目中配置好 OpenCode 并启用 LSP。
步骤
-
提供失败信号
把堆栈跟踪或失败的测试命令粘贴到会话中。
FAIL src/workers/queue.test.ts > Timeout: message processed twice under load -
要求根因分析
这个测试在高负载下间歇性失败。追踪消息从生产者到消费者的流程,找出为什么一条消息会被处理两次。
-
审查追踪结果
OpenCode 会沿着调用路径分析,指出确切的竞态条件——例如某个共享 channel 缺少互斥锁。
-
施加修复
确认建议的改动(例如加锁),让 OpenCode 实现。
-
用复现验证
在高负载下重新运行测试,确认修复生效。
npm test -- --grep queue
关键提示词
这是堆栈跟踪:[粘贴]。追踪代码中的执行路径并定位根因。提出能解决问题的最小改动,且不引入副作用。
常见坑点
- 治标不治本:先让 OpenCode 给出根因;表面的补丁可能掩盖别处的 Bug。
- 并发 Bug:多次重复运行测试——单次通过不能证明竞态已消除。
- 仅环境触发的 Bug:如果无法复现,分享日志和时间细节,让 OpenCode 能推理路径。
相关文档
相关案例
- refactor-codebase —
reason.bug-hunting.to-refactor - remote-server-troubleshoot —
reason.bug-hunting.to-remote - git-commit-workflow —
reason.bug-hunting.to-git
相关文档
下一步
- remote-server-troubleshoot —
next.bug-hunting.to-remote