An Efficient Relevant Slicing Method for Debugging

  • Tibor Gyimóthy
  • Árpád Beszédes
  • István Forgács
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1687)


Dynamic program slicing methods are widely used for debugging, because many statements can be ignored in the process of localizing a bug. A dynamic program slice with respect to a variable contains only those statements that actually had an influence on this variable. How- ever, during debugging we also need to identify those statements that actually did not affect the variable but could have affected it had they been evaluated differently. A relevant slice includes these potentially af- fecting statements as well, therefore it is appropriate for debugging. In this paper a forward algorithm is introduced for the computation of relevant slices of programs. The space requirement of this method does not depend on the number of different dynamic slices nor on the size of the execution history, hence it can be applied for real size applications.


Dynamic slicing relevant slicing debugging 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Agrawal, H., DeMillo, R. A., and Spafford, E. H. Dynamic slicing in the presence of unconstrained pointers. In Proceedings of the ACM Fourth Symposium on Testing, Analysis, and Verification (TAV4) (1991), pp. 60–73.Google Scholar
  2. 2.
    Agrawal, H., DeMillo, R. A., and Spafford, E. H. Debugging with dynamic slicing and backtracking. Software — Practive And Experience, 23(6):589–616, June 1993.CrossRefGoogle Scholar
  3. 3.
    Agrawal, H., and Horgan, J. Dynamic program slicing. SIGPLAN Notices, No. 6, 1990, pp. 246–256.Google Scholar
  4. 4.
    Agrawal, H., Horgan, J. R., Krauser, E. W., and London, S. A. Incremental Regression Testing. Proceedings of the IEEE Conference on Software Maintenance, Montreal, Canada,1993.Google Scholar
  5. 5.
    Beck, J., and Eichmann, D. Program and Interface Slicing for Reverse Engineering. In Proc. 15th Int. Conference on Software Engineering, Baltimore, Maryland, 1993. IEEE Computer Society Press, 1993, 509–518.Google Scholar
  6. 6.
    Forgács, I. An exact array reference analysis for data flow testing. In Proc. of the 18th Int. Conference on Software Engineering, Berlin 1996, 565–574.Google Scholar
  7. 7.
    Fritzson, P., Shahmehri, N., Kamkar, M., and Gyimóthy, T. Generalized algorithmic debugging and testing. ACM Letters on Programming Languages and Systems 1, 4 (1992), 303–322.CrossRefGoogle Scholar
  8. 8.
    Gallagher, K. B., and Lyle, J. R. Using Program Slicing in Software Maintenance. IEEE Transactions on Software Engineering 17, 8, 1991, 751–761.CrossRefGoogle Scholar
  9. 9.
    Horwitz, S., Reps, T., and Binkley, D. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems 12, 1 (1990), 26–61.CrossRefGoogle Scholar
  10. 10.
    Kamkar, M. An Overview and Comparative Classiffication of Program Slicing Techniques. J.Systems Software 31:197–214,1995.CrossRefGoogle Scholar
  11. 11.
    Kamkar, M. Interprocedural Dynamic Slicing with Applications to Debugging and Testing, Ph. D. Thesis, Linkoping University, 1993.Google Scholar
  12. 12.
    Korel, B., and Laski, J. Dynamic slicing in computer programs. The Journal of Systems and Software vol. 13, No. 3, 1990, pp. 187–195.CrossRefGoogle Scholar
  13. 13.
    Korel, B., and Rilling, J. Application of dynamic slicing in program debugging. In Proceedings of the Third International Workshop on Automatic Debugging (AADEBUG’97), Linkoping, Sweden, May 1997.Google Scholar
  14. 14.
    Korel, B., and Yalamanchili, S. Forward computation of dynamic program slices. In Proceedings of the 1994 International Symposium on Software Testing and Analysis (ISSTA), Seattle, Washington, August 1994.Google Scholar
  15. 15.
    Landi, W., and Ryder, B. A safe approximate algorithm for interprocedural pointer aliasing. In Proceedings of the 1992 ACM Conference on Programming Language Design and Implementation San Francisco, 1992), pp. 235–248. SIGPLAN Notices 27(7).CrossRefGoogle Scholar
  16. 16.
    Ottenstein, K., and Ottenstein, L. The program dependence graph in a software development environment. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments (1984), pp. 177–184. SIGPLAN Notices 19(5).CrossRefGoogle Scholar
  17. 17.
    Rothermer, G., and Harrold, M. J. Selecting tests and identifying test coverage requirements for modiffied software. In Proc. ISSTA’94 Seattle. 1994, 169–183Google Scholar
  18. 18.
    Tip, F. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121–189, September 1995.Google Scholar
  19. 19.
    Weiser M. Program Slicing. IEEE Transactions on Software Engineering SE-10, 4, 1984, 352–357.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Tibor Gyimóthy
    • 1
  • Árpád Beszédes
    • 1
  • István Forgács
    • 2
  1. 1.Research Group on Artificial IntelligenceHungarian Academy of SciencesSzegedHungary
  2. 2.Computer and Automation InstituteHungarian Academy of SciencesBudapestHungary

Personalised recommendations