English

Statistical Program Slicing: a Hybrid Slicing Technique for Analyzing Deployed Software

Software Engineering 2022-01-04 v1 Programming Languages

Abstract

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.

Keywords

Cite

@article{arxiv.2201.00060,
  title  = {Statistical Program Slicing: a Hybrid Slicing Technique for Analyzing Deployed Software},
  author = {Bogdan Alexandru Stoica and Swarup K. Sahoo and James R. Larus and Vikram S. Adve},
  journal= {arXiv preprint arXiv:2201.00060},
  year   = {2022}
}
R2 v1 2026-06-24T08:37:16.150Z