Statistical Program Slicing: a Hybrid Slicing Technique for Analyzing Deployed Software
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 c...
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | 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. |
---|---|
DOI: | 10.48550/arxiv.2201.00060 |