抛弃猜测式调试:用AI做真正的“目击证人”
不是所有人都知道,3点多钟的调试会话里,AI其实更像一个目击证人,而不是主审法官。你得给它看见现场——日志、堆快照、那行崩坏的代码——而不是问它“一般人都是怎么死的”。
下一篇
BYOC时代:AI部署绕开SaaS平台的10条军规 →
别再描述问题了,把现场喂过去
问AI“Node服务在高并发时偶尔崩”是徒劳的。它会给你背诵一份关于事件循环和内存泄漏的背诵文。但如果你直接丢过去一份堆快照、最近的git diff和一个稳定复现的脚本,它的表现完全不一样。
# 复现脚本 example_repro.js
const { Worker, isMainThread, parentPort } = require('worker_threads');
// ... 模拟 100+ 并发请求然后问它:“为什么这段代码在 concurrency > 100 时抛出 RangeError,而单线程没问题?”
它会逐行推理,而不是胡扯。
真实案例:WebSocket 内存泄漏
我靠写着玩儿的 WebSocket 服务器,每连上一个客户端就混个 100KB 永远不释放。看着 Chrome DevTools 的 Memory Timeline 那条狂上窜的曲线,终于忍不住拿 Cur--Claude 上了。
做了什么
1. --inspect 跑 Node,DevTools 导出 Heap Snapshot
2. 把 snapshot JSON 丢进对话(剪贴板太大的话,上传 Gist)
3. 贴上 handleDisconnect 处理函数
handleDisconnect(socket) {
this.subscribers.set(socket.userId, socket); // ← 这里漏了 delete
}Claude 一眼看出来了:Map.set 没成对删除。十分钟改完,内存稳了。
几个刚刚好够用的调试组合
- Node --inspect + Chrome DevTools → 跑起来就能打断点、看调用栈
- clinic.js →
clinic doctor --on-port 'autocannon http://localhost:8000' -- node index.js直接出火焰图 - heapdump →
npm i heapdump && node --heapdump-signal SIGUSR2 index.js - git log + git diff → “最近改了啥”比“可能是啥”靠谱
关键不是外包,而是换个角度
AI 帮你调试不是因为它懂你的业务,而是因为它可以快速阅读成千上行的代码并指出“这不对劲儿”。前提是:你得把证据放桌上,它才爱惠顾。
更系统的工具评测汇总在AI工具实测笔记,有不少直接可参考的案例。