Dynamic Slicing by On-demand Re-execution
Ivan Postolski, Victor Braberman, Diego Garbervetsky, and Sebastian, Uchitel

TL;DR
This paper introduces an on-demand re-execution method for dynamic slicing that shifts complexity from execution size to slice size, improving performance especially for small slices in large executions.
Contribution
It presents a novel on-demand re-execution algorithm utilizing frontier dependency and static analysis to efficiently construct dynamic slices.
Findings
Performance gains for small slices in large executions
Effective use of static analysis to focus dependency tracking
Evaluation on SV-COMP and unit tests supports approach's efficiency
Abstract
In this paper, we propose a novel approach that aims to offer an alternative to the prevalent paradigm to dynamic slicing construction. Dynamic slicing requires dynamic data and control dependencies that arise in an execution. During a single execution, memory reference information is recorded and then traversed to extract dependencies. Execute-once approaches and tools are challenged even by executions of moderate size of simple and short programs. We propose to shift practical time complexity from execution size to slice size. In particular, our approach executes the program multiple times while tracking targeted information at each execution. We present a concrete algorithm that follows an on-demand re-execution paradigm that uses a novel concept of frontier dependency to incrementally build a dynamic slice. To focus dependency tracking, the algorithm relies on static analysis. We…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software System Performance and Reliability
