SuperAPI AI 工具集

debug

测试与质量

查看项目

更新于 10-16 03:13

技能介绍

用途:把 bug 视为被证伪的假设,先找到假设、刻意证伪、观察偏差,逐步缩小到具体代码行,避免猜测式修改。

适用:测试失败且原因不明;生产环境栈追踪;间歇性或 flaky 行为;无崩溃但输出错误;已知提交窗口后的回归;heisenbug。不适用:输出正确的性能回归;安全缺陷;一行即可看出的明显症状;架构层面的困惑。

主要能力:提供语言中立的假设循环——观察并确定性复现、读取失败产物(栈、日志、core dump)、提出可证伪假设并按可能性排序、插入最小探针(断点、结构化日志、断言)、运行最小复现、确认或反驳、二分缩小可疑范围(回归用 git bisect)、用反向测试确认根因、把最小复现交给 TDD 成为永久失败测试。还包含栈追踪阅读要点(最内层帧为失败点、cause 链说明原因、异步虚拟栈会丢帧、需带调试信息构建、内联/优化帧标记近似映射)以及各语言并行工具表(C/C++/Rust、Python、Go、Java/Kotlin、JavaScript/TypeScript、OCaml 的实时调试器、事后/记录、远程附加工具)。

使用方式:按假设循环执行;工具示例包括 gdb、lldb、pdb、dlv、node --inspect、ocamldebug 等;建议用 procs 而非 ps 取 PID,用 bat -P -p -n 查看追踪文件,用 git grep -n -C 3 'pattern' 查调用点。

限制与规则:先复现再修复;一次只验证一个假设;证据优先于推断;把 bug 捕获为测试;用反向确认;回归用二分;不做静默编辑。反模式包括散弹式调试、无目标打印重跑、过早修复、忽略栈追踪、同时改两个变量、删除失败测试。数值计算(时序、边界、off-by-N)需调用 fend,不自行计算。资料未提供具体安装命令、收费或平台信息。