Efficient Forward Computation of Dynamic Slices Using Reduced Ordered Binary Decision Diagrams - Zhang, Xiangyu; Gupta, Rajiv; Zhang, Youtao (International Conference on Software Engineering: Proceedings of the 26th International Conference on Software Engineering; 23-28 May 2004, 2004)
Dynamic slicing algorithms can greatly reduce the debuggingeffort by focusing the attention of the user on a relevantsubset of program statements. Recently algorithms forforward computation of dynamic slices have beenproposed which maintain dynamic slices of all variables asthe program executes. An advantage of this approach is thatwhen a request for a slice is made, it is already available.The main disadvantage of using such an algorithm for slicingrealistic programs is that the space and time requiredto maintain a large set of dynamic slices corresponding toall program variables can be very high. In this paper weanalyze the characteristics of dynamic slices and identifyproperties that enable space efficient representation of a setof dynamic slices. We show that by using reduced orderedbinary decision diagrams (roBDDs) to represent a set ofdynamic slices, the space and time requirements of maintainingdynamic slices are greatly reduced. In fact not onlycan the latest dynamic slices of all variables be easilymaintained, but rather all dynamic slices of all variablesthroughout a programýs execution can be maintained. Ourexperiments show that our roBDD based algorithm for forwardcomputation of dynamic slices can maintain 107-217million dynamic slices arising during long program runs usingonly 28-392 megabytes of storage. In addition, the performanceof the roBDD based forward computation methodcompares favorably with the performance of the LP backwardcomputation algorithm.