Memoized Forward Computation of Dynamic Slices

Forward computation of dynamic slices is necessary to support interactive debugging and online analysis of long running programs. However, the overhead of existing forward computing algorithms limits their use to non-processing intensive applications. Recent empirical studies have shown that slices tend to reoccur often during execution. This paper presents a new forward computing algorithm for dynamic slicing, which is based on the stronger assumption that the same set union operations need to be performed repeatedly during slice computation. We present the results of an empirical study contrasting the performance of our new algorithm to the performance of a basic forward computing algorithm that unconditionally merges slices influencing an executing statement. The results indicate that the new algorithm is substantially faster than the basic algorithm and often requires significantly less memory

[1]  Xiangyu Zhang,et al.  Precise dynamic slicing algorithms , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[2]  David Leon,et al.  Detecting and debugging insecure information flows , 2004, 15th International Symposium on Software Reliability Engineering.

[3]  Xiangyu Zhang,et al.  Cost and precision tradeoffs of dynamic data slicing algorithms , 2005, TOPL.

[4]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[5]  Tamás Gergely,et al.  Handling Pointers and Unstructured Statements in the Forward Computed Dynamic Slice Algorithm , 2002, Acta Cybern..

[6]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[7]  Butler W. Lampson,et al.  A note on the confinement problem , 1973, CACM.

[8]  Bogdan Korel,et al.  Forward computation of dynamic program slices , 1994, ISSTA '94.

[9]  B. Korel Computation of Dynamic Program Slices for Unstructured Programs , 1997, IEEE Trans. Software Eng..

[10]  Andrew C. Myers,et al.  Language-based information-flow security , 2003, IEEE J. Sel. Areas Commun..

[11]  Gregg Rothermel,et al.  Interprocedural control dependence , 2001, TSEM.

[12]  Xiangyu Zhang,et al.  Cost effective dynamic program slicing , 2004, PLDI '04.

[13]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[14]  Dorothy E. Denning,et al.  A lattice model of secure information flow , 1976, CACM.

[15]  Peter J. Denning,et al.  Certification of programs for secure information flow , 1977, CACM.

[16]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[17]  Andy Podgurski,et al.  Dynamic information flow analysis, slicing and profiling , 2005 .

[18]  János Csirik,et al.  Dynamic Slicing Method for Maintenance of Large C Programs , 2001, CSMR.

[19]  Arnold L. Rosenberg,et al.  The significance of program dependences for software testing, debugging, and maintenance , 1989 .

[20]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[21]  Bogdan Korel,et al.  Algorithmic software fault localization , 1991, Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences.

[22]  Xiangyu Zhang,et al.  Efficient forward computation of dynamic slices using reduced ordered binary decision diagrams , 2004, Proceedings. 26th International Conference on Software Engineering.