Predicting Data Dependences for Slice Inspection Prioritization

Data dependences play a central role in program debugging and comprehension. They serve as building blocks for program slicing and statistical fault localization, among other debugging approaches. Unfortunately, static analysis reports many data dependences that, in reality, are infeasible or unlikely to occur at runtime. This phenomenon is exacerbated by the extensive use of pointers and object-oriented features in modern software. Dynamic analysis, in contrast, reports only data dependences that occur in an execution but misses all other dependences that can occur in the program. To tackle the imprecision of data-dependence analysis, we present a novel static analysis that predicts the likelihood of occurrence of data dependences. Although it is hard to predict execution frequencies accurately, our preliminary results suggest that our analysis can distinguish the data dependences most likely to occur from those less likely to occur, which helps engineers prioritize their inspection of dependences in slices. These are promising results that encourage further research.

[1]  Raúl A. Santelices,et al.  Efficiently monitoring data-flow test coverage , 2007, ASE.

[2]  Barbara G. Ryder,et al.  Interprocedural Def-Use Associations for C Systems with Single Level Pointers , 1994, IEEE Trans. Software Eng..

[3]  Raúl A. Santelices,et al.  Probabilistic Slicing for Predictive Impact Analysis , 2010 .

[4]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[5]  Markus Mock,et al.  Program slicing with dynamic points-to sets , 2005, IEEE Transactions on Software Engineering.

[6]  Aniello Cimitile,et al.  Conditioned program slicing , 1998, Inf. Softw. Technol..

[7]  Jens Krinke,et al.  Effects of context on program slicing , 2006, J. Syst. Softw..

[8]  James R. Larus,et al.  Branch prediction for free , 1993, PLDI '93.

[9]  Mark Harman,et al.  Theoretical foundations of dynamic program slicing , 2006, Theor. Comput. Sci..

[10]  Barbara G. Ryder,et al.  Parameterized object sensitivity for points-to analysis for Java , 2005, TSEM.

[11]  Mark Harman,et al.  An empirical study of static program slice size , 2007, TSEM.

[12]  Lars Ole Andersen,et al.  Program Analysis and Specialization for the C Programming Language , 2005 .

[13]  Manu Sridharan,et al.  Thin slicing , 2007, PLDI '07.

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

[15]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[16]  Xiangyu Zhang,et al.  Pruning dynamic slices with confidence , 2006, PLDI '06.