一句话:通过跨插桩密度与硬件平台的多样化执行,构建 WebAssembly 动态数据竞争检测框架 Beanstalk,并提出 heisen factor 度量。
Heisenbug 会因观察而改变行为、难以复现,常逃过静态检测,在动态复杂、与物理环境交互不可预测的信息物理边缘系统中尤为普遍。现有动态检测工具虽更有效,但抖动与开销偏高,且缺乏衡量 bug“海森程度”的指标,难以评估其对 Heisenbug 的实际效果。本文提出一种低开销、可扩展的 Heisenbug 检测方法,并以动态数据竞争检测为落地场景,论证执行多样性——同时跨插桩密度与硬件平台——对检测 Heisenbug 的关键作用,其收益超过有限插桩或较弱设备带来的效率损失。作者实现基于 WebAssembly 的动态数据竞争检测框架 Beanstalk,在固定计算预算下相比任何同构插桩策略均展现更强检测能力,且随规模扩展而增益,适合多计算节点低开销部署。基于对 Beanstalk 所观测 bug 的严格统计分析,论文提出新指标 heisen factor,供类似检测器分类 Heisenbug 并衡量有效性,最后总结面向内部开发与部署环境的调试策略启示。
Heisenbugs , notorious for their ability to change behavior and elude reproducibility under observation, are among the toughest challenges in debugging programs. They often evade static detection tools, making them especially prevalent in cyber-physical edge systems characterized by complex dynamics and unpredictable interactions with physical environments. Although dynamic detection tools work much better, most still struggle to meet low enough jitter and overhead performance requirements, impeding their adoption. More importantly however, dynamic tools currently lack metrics to determine an observed bug’s “difficulty” or “heisen–ness” undermining their ability to make any claims regarding their effectiveness against heisenbugs. This paper proposes a methodology for detecting and identifying heisenbugs with low overheads at scale, actualized through the lens of dynamic data-race detection. In particular, we establish the critical impact of execution diversity across both instrumentation density and hardware platforms for detecting heisenbugs; the benefits of which outweigh any reduction in efficiency from limited instrumentation or weaker devices. We develop an experimental WebAssembly-backed dynamic data-race detection framework, Beanstalk, which exploits this diversity to show superior bug detection capability compared to any homogeneous instrumentation strategy on a fixed compute budget. Beanstalk’s approach also gains power with scale , making it suitable for low-overhead deployments across numerous compute nodes. Finally, based on a rigorous statistical treatment of bugs observed by Beanstalk, we propose a novel metric, the heisen factor , that similar detectors can utilize to categorize heisenbugs and measure effectiveness. We reflect on our analysis of Beanstalk to provide insight on effective debugging strategies for both in-house and in deployment settings.
@article{paperbot3196,
title = {Unveiling Heisenbugs with Diversified Execution},
author = {Arjun Ramesh and Tianshu Huang and Jaspreet Riar and Ben L. Titzer and Anthony Rowe},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA1},
year = {2025},
doi = {10.1145/3720428}
}