Agent Skills
返回列表
💻

Bug 调试助手

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/debugging-skillhub。

技能介绍

它解决什么问题

改 bug 最常见的失败模式是试错式修复:看到报错就改一行代码,症状消失便以为完成,几周后同一个 bug 在另一条路径上复活。这类修复掩盖了症状,却没触到根因——对并发下才出现的竞态条件、缓慢累积的内存泄漏、只在特定输入上触发的逻辑错误尤其无力。

核心能力:五阶段排查流程

这个技能把调试固化为可执行的流程,让代理像工程师一样排查而非猜测:

  • 复现(Reproduce):确认 bug 可观察、可重复,收集完整的错误信息、堆栈和日志,找出最小触发输入;间歇性 bug 要记录出现频率与相关环境条件(负载、时序、特定数据)。
  • 隔离(Isolate):从堆栈和代码结构反推数据流,定位值偏离预期的位置;大代码库用二分法逐段禁用、逐步收敛。
  • 诊断(Diagnose):区分症状与根因。NullPointerException 只是症状,根因可能是三次调用前缺失的输入校验。常见根因包括空值/越界输入、并发线程修改共享状态、过期缓存或记忆化值、运算符优先级错误、async 调用漏写 await、依赖版本不兼容。
  • 修复(Fix):做满足根因的最小改动,不引入副作用;修改共享接口时追踪所有调用方;优先防御式修复(如补输入校验),而非只堵当前触发点的窄补丁。
  • 验证(Verify):重跑复现步骤确认修复,为此前失败的场景补上回归测试,确保既有测试不回归;关键路径上的 bug 可追加日志或监控。

工具层面覆盖 Python traceback、Java/JS 堆栈、Go panic、Rust backtrace,调试器支持 pdb/ipdb、Chrome DevTools、gdb/lldb、dlv,内存分析可用 tracemalloc、Valgrind、Chrome Heap Snapshots 等。

使用边界

  • 海森堡 bug:附加交互式调试器会改变时序,可能掩盖竞态条件,此时应改用日志/追踪或语言自带的竞态检测器(如 Go -race)。
  • 环境相关 bug:只在生产出现的 bug 可能依赖 OS 版本、内存限制、网络延迟或配置差异,需要构造匹配的复现环境(如带内存上限的 Docker)。
  • 第三方库与运行时 bug:根因可能在依赖内部,路径是升级库、应用绕过方案或锁定已知可用版本;穷尽应用层解释后才考虑换运行时版本。
  • 数据损坏类问题:如半写入的数据库行,需要样本数据与代码路径联合排查。

使用场景

  • 线上服务并发下偶发响应缺字段,需定位竞态条件并给出最小修复
  • Python 异步代码在高负载时出现状态不一致,需要追踪共享状态的竞态根因
  • Node.js 服务内存随时间持续增长直至 OOM,需分析内存泄漏点并给出修复
  • 收到完整堆栈或日志后按流程隔离故障代码段并编写防回归测试

适合人员

  • 后端工程师:需要修复生产环境中的竞态条件与内存泄漏
  • 全栈开发者:处理前后端逻辑错误并维护回归测试用例
  • AI 代理开发者:希望为智能体集成结构化的程序排查能力
  • 平台工程师:排查跨语言服务的性能回退与运行时异常