Bogdan Korel
Department of Computer Science, Illinois Institute of Technology, USA
Jurgen Rilling
Department of Computer Science, Illinois Institute of Technology, USA
Download articlePublished in: Proceedings of the 3rd International Workshop on Automatic Debugging; 1997 (AADEBUG-97)
Linköping Electronic Conference Proceedings 1:5, p. 43-57
Linköping Electronic Articles in Computer and Information Science vol. 2 1:5, p. 43-57
Published: 1997-09-10
ISBN:
ISSN: 1650-3686 (print), 1650-3740 (online)
A dynamic program slice is an executable part of a program whose behavior is identical; for the same program input; to that of the original program with respect to a variable(s) of interest at some execution position. In the existing dynamic slicing tools dynamic slices are represented in a textual form; i.e.; a dynamic slice is displayed to programmers in the form of highlighted statements or in the form of a subprogram. Although dynamic slicing does narrow the size of the program; it is still up to the programmer to analyze the text of a dynamic slice and identify a faulty part in the program. The textual representation of a dynamic slice does not provide much guidance in program debugging and understanding of program behavior; which frequently is a major factor in efficient debugging. During dynamic slice computation different types of information are computed and then discarded after computation of the dynamic slice. In this paper we propose new dynamic slicing related features that exploit this information to improve the process of program debugging. These features were implemented in our dynamic slicing tool that can be used for program debugging.
[1] H. Agrawal; J. Horgan; "Dynamic program slicing;" SIGPLAN Notices; No. 6; 1990; pp. 246-256.
[2] H. Agrawal; R. DeMillo; E. Spafford; "Debugging with dynamic slicing and backtracking;" Software Practice & Exp.; vol. 23; No. 6; 1993; pp. 589-616.
[3] J. Cheng; "Slicing concurrent programs;" Proc. of the 1-st Intern. Workshop on Automated and Alg. Debugging; 1993; pp. 244-261.
[4] E. Duesterwald; R. Gupta; M. L. Soffa; "Distributed slicing and partial re-execution for distributed programs;" Proc. 5th Workshop on Lang. and Compilers for Parallel Comp.; 1992; pp. 329-337.
[5] K. Gallagher; J. Lyle; "Using program slicing in software maintenance;" IEEE Tran. on Software Engineering; vol. 17; No. 8; 1991; pp. 751-761.
[6] R. Gopal; "Dynamic program slicing based on dependence relations;" Proc. of the Conf. on Software Maintenance; 1991; pp. 191-200.
[7] R. Gupta; M. Harrold; M. Soffa; "An approach to regression testing using slicing;" Conference on Software Maintenance; 1992; pp. 299-308.
[8] S. Horwitz; T. Reps; D. Binkley; "Interprocedural slicing using dependence graphs;" Trans. on Progr. Lang. and Systems; vol. 12; No. 1; pp. 26-60; 1990.
[9] M. Kamkar; Interprocedural Dynamic Slicing with Applications to Debugging and Testing; Ph. D. Thesis; Linkoping University; 1993.
[10] M. Kamkar; P. Fritzson; N. Shahmehri; "Interprocedural dynamic slicing applied to interprocedural data flow testing;" Conference on Software Maintenance; 1993; pp. 386-395.
[11] B. Korel; J. Laski; "Dynamic program slicing;" Information Processing Letters; vol. 29; No. 3; 1988; pp. 155-163.
[12] B. Korel; "PELAS - Program Error Locating Assistant System;" IEEE Trans. on Software Eng.; vol. SE-14; No. 9; 1988; pp. 1253-1260.
[13] B. Korel; J. Laski; "Dynamic slicing in computer programs;" The Journal of Systems and Software; vol. 13; No. 3; 1990; pp. 187-195.
[14] B. Korel; R. Ferguson; "Dynamic slicing of distributed programs;" Applied Mathematics & Comp. Science J.; vol. 2; No. 2; 1992; pp. 199-215.
[15] B. Korel; S. Yalamanchili; "Forward Derivation of Dynamic Slices;" Proc. of the Intern. Symposium on Software Testing and Analysis; 1994; pp. 66-79.
[16] B. Korel; "Computation of dynamic slices for unstructured programs;" IEEE Transactions on Software Engineering; vol. 23; No. 1; pp. 17-34; 1997.
[17] J. Lyle; M. Weiser; ""Experiments on slicing-based debugging tools;" Proc. of the 1st Conf. on Empirical Studies of Programming; 1986; pp. 187-197.
[18] G. Venkatesh; “Experimental results from dynamic slicing of C programs;” Trans. on Progr. Lang. and Systems; vol. 17; No. 2; pp. 197-216; 1995.
[19] M. Weiser; "Programmers use slices when debugging;" CACM; vol. 25; No. 7; 1982; pp. 446-452.
[20] M. Weiser; "Program slicing;" IEEE Trans. Software Eng.; SE-10; No. 4; 1982; pp. 352-357.
[21] L. White; H. Leung; "Regression testability;" IEEE Micro; April 1992; pp. 81-85.
[22] D. Binkley; K. Gallagher; "Program slicing;" Advances in Computers (to appear).