skip to main content
10.1145/1101908.1101948acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Locating faulty code using failure-inducing chops

Published:07 November 2005Publication History

ABSTRACT

Software debugging is the process of locating and correcting faulty code. Prior techniques to locate faulty code either use program analysis techniques such as backward dynamic program slicing or exclusively use delta debugging to analyze the state changes during program execution. In this paper, we present a new approach that integrates the potential of delta debugging algorithm with the benefit of forward and backward dynamic program slicing to narrow down the search for faulty code. Our approach is to use delta debugging algorithm to identify a minimal failure-inducing input, use this input to compute a forward dynamic slice and then intersect the statements in this forward dynamic slice with the statements in the backward dynamic slice of the erroneous output to compute a failure-inducing chop. We implemented our technique and conducted experiments with faulty versions of several programs from the Siemens suite to evaluate our technique. Our experiments show that failure-inducing chops can greatly reduce the size of search space compared to the dynamic slices without significantly compromising the capability to locate the faulty code. We also applied our technique to several programs with known memory related bugs such as buffer overflow bugs. The failure-inducing chop in several of these cases contained only 2 to 4 statements which included the code causing memory corruption.

References

  1. H. Agrawal and J. Horgan, "Dynamic program slicing," ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 246--256, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. H. Agrawal, R. DeMillo, and E. Spafford, "Debugging with dynamic slicing and backtracking," Software Practice and Experience (SP&E), Vol. 23, No. 6, pages 589--616, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. H. Agrawal, J.R. Horgan, E.W., and S.A. London, "Incremental regression testing," IEEE Conference on Software Maintenance (ICSM), Montreal, Canada, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. H. Agrawal, J. Horgan, S. London, and W. Wong, "Fault localization using execution slices and dataflow tests," Sixth IEEE International Symposium on Software Reliability Engineering (ISSRE), pages 143--151, 1995.Google ScholarGoogle Scholar
  5. AskIgor, Automated Debugging Service. http://www.st.cs.uni-sb.de/askigor/Google ScholarGoogle Scholar
  6. A. Beszedes, T. Gergely, Z.M. Szabo, J. Csirik, and T. Gyimothy, "Dynamic slicing method for maintenance of large C programs," 5th European Conference on Software Maintenance and Reengineering (CSMR), pages 105--113, March 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. H. Cleve and Andreas Zeller, "Locating causes of program failures," 27th International Conference on Software Engineering (ICSE), pages 342--351, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Diablo Is A Better Link-time Optimizer. http://www.elis.ugent.be/diablo/Google ScholarGoogle Scholar
  9. T. Gyimothy, A. Beszedes, I. Forgacs, "An efficient relevant slicing method for debugging," 7th European Software Engineering Conference/ 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE), Toulouse, France, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Hangal and M.S. Lam, "Tracking down software bugs using automatic anomaly detection," International Conference on Software Engineering (ICSE), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. J. Harrold,, G. Rothermel, K. Sayre, R. Wu, and L. Yi, "An empirical investigation of the relationship between spectra differences and regression faults,"Journal of Software Testing Verification and Reliability, 10(3):171--194, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  12. H. He and N. Gupta, "Automated Debugging using Path-Based Weakest Preconditions," Fundamental Approaches to Software Engineering (FASE), ETAPS Joint Conference, Barcelona, Spain, March 29--31, 2004.Google ScholarGoogle Scholar
  13. http://www.cse.unl.edu/~galileo/sirGoogle ScholarGoogle Scholar
  14. M. Hutchins, H. Foster, T. Goradia, and T. Ostrand, "Experiments on the effectiveness of dataflow and controlflow based test adequacy criteria," 16th International Conference on Software Engineering (ICSE), pages 191--200, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Information Week, Issue on Software Quality, Jan 21, 2002.Google ScholarGoogle Scholar
  16. J.A. Jones, M.J. Harrold, and J. Stasko, "Visualization of test information to assist fault localization,"International Conf. on Software Engineering (ICSE), page 467--477, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. B. Korel and J. Laski, "Dynamic program slicing,"Information Processing Letters (IPL), Vol. 29, No. 3, pages 155--163, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. B. Korel and J. Rilling, "Application of dynamic slicing in program debugging," 3rd International Workshop on Automatic Debugging (AADEBUG), Linkoping, 1997.Google ScholarGoogle Scholar
  19. B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan, "Bug isolation via remote program sampling," SIGPLAN Conference on Programming Language Design and Implementation (PLDI), San Diego, California, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. S. Narayanaswamy, G. Pokam, and B. Calder, "BugNet: continuously recording program execution for deterministic replay debugging," 32nd International Symposium on Computer Architecture (ISCA), pages 284--295, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Renieris and S. Reiss, "Fault localization with nearest neighbor queries,"Automated Software Engineering (ASE), 2003.Google ScholarGoogle Scholar
  22. The Unravel Project. http://hissa.nist.gov/unravel/Google ScholarGoogle Scholar
  23. Valgrind. http://valgrind.org/Google ScholarGoogle Scholar
  24. M. Weiser, "Program slicing," IEEE Transactions on Software Engineering (TSE), Vol. SE-10, No. 4, pages 352--357, 1982.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Y. Xie and D. Engler, "Using Redundancies to Find Errors,"ACM SIFSOFT International Symposium on Foundations of Software Engineering (FSE), pages 51--60, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Zeller, "Isolating cause-effect chains from computer programs,"10th ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE), Charleston, South Carolina, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. Zeller, "Yesterday, my program worked. Today, it does not. Why?," Seventh European Software Engineering Conference/ Seventh ACM SIGSOFT Symposium on Foundations of Software Engineering (ESEC/FSE), pages 253--267, Sept. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. A. Zeller and R. Hildebrandt, "Simplifying and isolating failure-inducing input," IEEE Transactions on Software Engineering (TSE), Vol 28, No 2, Feb. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. X. Zhang, R. Gupta, and Y. Zhang "Precise dynamic slicing algorithms," IEEE/ACM International Conference on Software Engineering (ICSE), pages 319-329, Portland, Oregon, May 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. X. Zhang, R. Gupta, and Y. Zhang, "Effective forward computation of dynamic slices using reduced ordered binary decision diagrams," IEEE International Conference on Software Engineering (ICSE), pages 502--511, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. X. Zhang, H. He, N. Gupta and R. Gupta, "Experimental evaluation of using dynamic slices for fault location," Sixth International Symposium on Automated and Analysis-Driven Debugging (AADEBUG), Monterey, California, September 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. X. Zhang and R. Gupta, "Cost effective dynamic program slicing,"ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 94-106, Washington D.C., June 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. P. Zhou, W. Liu, L. Fei, S. Lu, F. Qin, Y. Zhou, S.P. Midkiff, and J. Torrellas, "AccMon: automatically detecting memory-related bugs via program counter-based invariants,"37th Annual International Symposium on Microarchitecture (MICRO), pages 269--280, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Locating faulty code using failure-inducing chops

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ASE '05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering
        November 2005
        482 pages
        ISBN:1581139934
        DOI:10.1145/1101908

        Copyright © 2005 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 7 November 2005

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate82of337submissions,24%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader