skip to main content
10.1145/2254064.2254087acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Automated error diagnosis using abductive inference

Published:11 June 2012Publication History

ABSTRACT

When program verification tools fail to verify a program, either the program is buggy or the report is a false alarm. In this situation, the burden is on the user to manually classify the report, but this task is time-consuming, error-prone, and does not utilize facts already proven by the analysis. We present a new technique for assisting users in classifying error reports. Our technique computes small, relevant queries presented to a user that capture exactly the information the analysis is missing to either discharge or validate the error. Our insight is that identifying these missing facts is an instance of the abductive inference problem in logic, and we present a new algorithm for computing the smallest and most general abductions in this setting. We perform the first user study to rigorously evaluate the accuracy and effort involved in manual classification of error reports. Our study demonstrates that our new technique is very useful for improving both the speed and accuracy of error report classification. Specifically, our approach improves classification accuracy from 33% to 90% and reduces the time programmers take to classify error reports from approximately 5 minutes to under 1 minute.

References

  1. Bessey, A., Block, K., Chelf, B., Chou, A., Fulton, B., Hallem, S., Henri-Gros, C., Kamsky, A., McPeak, S., Engler, D.: A few billion lines of code later: using static analysis to find bugs in the real world. Communications of the ACM 53(2) (2010) 66--75 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Dillig, I., Dillig, T., Aiken, A.: Automated error diagnosis using abductive inference (extended version). http://www.cs.wm.edu/~idillig/pldi12-extended.pdfGoogle ScholarGoogle Scholar
  3. Dillig, I., Dillig, T., McMillan, K., Aiken, A.: Minimum satisfying assignments for SMT. In: To appear in CAV. (2012) Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dillig, I., Dillig, T., Aiken, A.: Small formulas for large programs: On-line constraint simplification in scalable static analysis. Static Analysis Symposium (SAS) (2010) 236--252 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dillig, I., Dillig, T., Aiken, A.: Fluid updates: Beyond strong vs. weak updates. ESOP (2010) 246--266 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dillig, I., Dillig, T., Aiken, A.: Precise reasoning for programs using containers. POPL (2011) 187--200 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dillig, I., Dillig, T., Aiken, A., Sagiv, M.: Precise and compact modular procedure summaries for heap manipulating programs. In: PLDI. (2011) 567--577 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Ball, T., Naik, M., Rajamani, S.: From symptom to cause: localizing errors in counterexample traces. POPL 38(1) (2003) 97--105 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Groce, A.: Error explanation with distance metrics. TACAS (2004) 108--122Google ScholarGoogle Scholar
  10. Jose, M., Majumdar, R.: Cause clue clauses: error localization using maximum satisfiability. In: PLDI, ACM (2011) 437--446 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Griesmayer, A., Staber, S., Bloem, R.: Automated fault localization for c programs. Theoretical Computer Science 174(4) (2007) 95--111 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Renieres, M., Reiss, S.: Fault localization with nearest neighbor queries. In: ASE. (2003) 30--39Google ScholarGoogle Scholar
  13. Ravi, K., Somenzi, F.: Minimal assignments for bounded model checking. TACAS (2004) 31--45Google ScholarGoogle Scholar
  14. Henzinger, T., Jhala, R., Majumdar, R., Sutre, G.: Software verification with blast. Model Checking Software (2003) 624--624 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Ball, T., Rajamani, S.: The SLAM project: debugging system software via static analysis. In: POPL, NY, USA (2002) 1--3 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Henzinger, T., Jhala, R., Majumdar, R., McMillan, K.: Abstractions from proofs. POPL 39(1) (2004) 232--244 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Manevich, R., Sridharan, M., Adams, S., Das, M., Yang, Z.: PSE: explaining program failures via postmortem static analysis. In: FSE. Volume 29., ACM (2004) 63--72 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Le, W., Soffa, M.: Path-based fault correlations. In: FSE. (2010) 307--316 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Weimer, W.: Patches as better bug reports. In: GPCE. (2006) 181--190 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Weiser, M.: Program slicing. In: ICSE, IEEE Press (1981) 439--449 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Korel, B., Laski, J.: Dynamic program slicing. Information Processing Letters 29(3) (1988) 155--163 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sridharan, M., Fink, S., Bodik, R.: Thin slicing. In: PLDI, ACM (2007) 112--122 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Beaven, M., Stansifer, R.: Explaining type errors in polymorphic languages. LOPLAS 2(1--4) (1993) 17--30 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Haack, C., Wells, J.: Type error slicing in implicitly typed higher-order languages. Programming Languages and Systems (2003) 284--301 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Yang, J.: Explaining type errors by finding the source of a type conflict. Trends in Functional Programming (1999) 49--57 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lerner, B., Flower, M., Grossman, D., Chambers, C.: Searching for type-error messages. In: PLDI, ACM (2007) 425--434 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Nori, A., Rajamani, S., Tetali, S., Thakur, A.: The yogi project: Software property checking via static analysis and testing. TACAS (2009) 178--181 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Godefroid, P., Nori, A., Rajamani, S., Tetali, S.: Compositional may-must program analysis: unleashing the power of alternation. In: POPL. Volume 45., ACM (2010) 43--56 Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Yorsh, G., Ball, T., Sagiv, M.: Testing, abstraction, theorem proving: better together! In: ISSTA, ACM (2006) 145--156 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Dillig, I., Dillig, T., Aiken, A.: Sound, complete and scalable path-sensitive analysis. In: PLDI, ACM (2008) 270--280 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automated error diagnosis using abductive inference

      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
        PLDI '12: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2012
        572 pages
        ISBN:9781450312059
        DOI:10.1145/2254064
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 47, Issue 6
          PLDI '12
          June 2012
          534 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2345156
          Issue’s Table of Contents

        Copyright © 2012 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: 11 June 2012

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        PLDI '12 Paper Acceptance Rate48of255submissions,19%Overall Acceptance Rate406of2,067submissions,20%

        Upcoming Conference

        PLDI '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader