The Slice Navigator: Focused Debugging with Interactive Dynamic Slicing
Arian Treffer, Matthias Uflacker · 2016
Slicing is a technique to reduce the amount of code that needs to be analyzed for a given problem. In this paper, we present the Slice Navigator, a debugging tool for Java programs that combines dynamic slicing with back-in-time debugging data to support the debugging process in multiple ways. Firstly, it supports the developer's short term memory by providing a summary of relevant program state and context for the current instruction. Secondly, it provides an alternative to breakpoints as it can be used to control the debugger to jump to related instructions, such as the last change of a variable. Thirdly, it allows to directly reconfigure the slicing criteria, enabling the developer to minimize the search space of active code without interrupting the debugging workflow. The paper focuses on the UI and implementation of the Slice Navigator view and how it changes the debugging workflow. A performance evaluation shows the feasibility of our approach for larger programs.