跳转到内容

自动化 Bug 定位与修复

快速定位隐蔽 Bug 的根因并施加经过验证的修复。OpenCode 会读取堆栈跟踪、追踪执行路径,并提出针对性改动。

何时使用此案例

  • 有堆栈跟踪或失败的测试,但没有明确原因。
  • Bug 是间歇性的,或涉及并发。
  • 想要一个带说明的修复,而不是猜测。

前置配置

  • 失败的测试用例,或可靠的复现步骤。
  • 在项目中配置好 OpenCode 并启用 LSP。

步骤

  1. 提供失败信号

    把堆栈跟踪或失败的测试命令粘贴到会话中。

    FAIL src/workers/queue.test.ts
    > Timeout: message processed twice under load
  2. 要求根因分析

    这个测试在高负载下间歇性失败。追踪消息从生产者到消费者的流程,找出为什么一条消息会被处理两次。

  3. 审查追踪结果

    OpenCode 会沿着调用路径分析,指出确切的竞态条件——例如某个共享 channel 缺少互斥锁。

  4. 施加修复

    确认建议的改动(例如加锁),让 OpenCode 实现。

  5. 用复现验证

    在高负载下重新运行测试,确认修复生效。

    npm test -- --grep queue

关键提示词

这是堆栈跟踪:[粘贴]。追踪代码中的执行路径并定位根因。提出能解决问题的最小改动,且不引入副作用。

常见坑点

  • 治标不治本:先让 OpenCode 给出根因;表面的补丁可能掩盖别处的 Bug。
  • 并发 Bug:多次重复运行测试——单次通过不能证明竞态已消除。
  • 仅环境触发的 Bug:如果无法复现,分享日志和时间细节,让 OpenCode 能推理路径。

相关文档

  • 故障排查 — OpenCode 常见问题与解决方法
  • LSP 集成 — OpenCode 如何通过语言服务器协议理解你的代码

相关案例

相关文档

下一步