statistical-debugging

4 posts

Crash Correlation 会说谎。以下是如何让它们指向真正的 Bug。

Statistical debugging 找到与崩溃相关的 predicates,但相关性不是文件和行号。以下是如何通过排序、过滤和三角测量,从相关性分数找到实际的 bug 位置。

Statistical debugging 给你的是 predicates 的排序列表,而不是根因。你对每个分支和 null check 进行插桩,运行十万次执行,算法给你一个记分板。 处的 的 importance 为 0.94。 处的 也是。其中一个是 bug。另一个只是每当程序崩溃时就恰好为真。…

Sentry 的 Seer 能读懂你的 Traces。但这并不意味着它总能找到根因。

Seer 摄取 trace tree、关联的错误和性能分析数据来诊断分布式问题。以下是它的实际工作原理、擅长之处以及仍然需要人工帮助的地方。

前端抛出 500。Stack trace 指向一个 React 组件。真正的问题在三个服务之外,由泄漏的后台作业耗尽的数据库连接池。 你可以点击浏览 trace waterfall、关联时间戳并阅读提交历史。或者你可以把它交给 Sentry 的 Seer,一个由 LLM 驱动的调试代理,它读取你的…

Statistical debugging 本应终结 printf 调试时代。但大多数团队从未让它真正运转起来。

Statistical debugging 承诺通过将程序行为与故障相关联来精确定位 bug。以下是为什么这个想法从未从研究论文跨越到生产系统。

Statistical debugging 本应终结 时代。对你的代码进行插桩,从数千次运行中收集 trace,运行相关性分析,然后看着工具按照导致崩溃的可能性对每一个分支和 null check 进行排序。它在 2000…

你的测试通过了。但你的数据仍然是错的。

Statistical debugging 将你的生产数据视为信号,将 bug 视为信号中的异常。以下是如何在不添加任何 unit test 的情况下发现数据损坏、off-by-one 错误和静默故障。

你的 test suite 是绿的。你的日志很安静。你的仪表盘没有红线。然而,3% 的用户收到的发票总额是负数,或者你的推荐模型正在默默地将已删除的产品排在第一位,或者你的聚合 pipeline 正在对某个特定时区的退款进行重复计数。 这些是数据 bug。它们不会抛出异常。它们不会导致 pod 崩溃。它们通过了你的…