论文标题
统计程序切片:一种用于分析已部署软件的混合切片技术
Statistical Program Slicing: a Hybrid Slicing Technique for Analyzing Deployed Software
论文作者
论文摘要
动态程序切片可以大大减少代码开发人员对仅将其缩小到相关程序语句的一部分来检查的代码开发人员。然而,尽管大量研究表明其有用性,但由于运行时仪器的高成本,动态切片仍与生产水平的使用相距不足。 作为替代方案,我们提出了统计程序切片,这是一种新型混合动态静态切片技术,探讨了准确性和运行时成本之间的权衡。我们的方法依赖于现代硬件支持控制流量监控以及一种新颖的合作堆存储器追踪机制,并结合了用于数据流跟踪的静态程序分析。我们评估了来自6个广泛部署的应用程序中的21次失败的统计切片,并表明它在动态切片上恢复了94%的程序语句,只有5%的开销。
Dynamic program slicing can significantly reduce the code developers need to inspect by narrowing it down to only a subset of relevant program statements. However, despite an extensive body of research showing its usefulness, dynamic slicing is still short from production-level use due to the high cost of runtime instrumentation. As an alternative, we propose statistical program slicing, a novel hybrid dynamic-static slicing technique that explores the trade-off between accuracy and runtime cost. Our approach relies on modern hardware support for control flow monitoring and a novel, cooperative heap memory tracing mechanism combined with static program analysis for data flow tracking. We evaluate statistical slicing for debugging on 21 failures from 6 widely deployed applications and show it recovers 94% of the program statements on a dynamic slice with only 5% overhead.