Statistical Program Slicing: a Hybrid Slicing Technique for Analyzing Deployed Software
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.
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}
}