Skip to main content

Automated Program Debugging for Multiple Bugs Based on Semantic Analysis

  • Conference paper
Structured Object-Oriented Formal Language and Method (SOFL+MSVL 2015)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9559))

  • 360 Accesses

Abstract

Fault locating is a time-consuming process. In a previous paper, Liu proposed an algorithm named bounded debugging via multiple predicate switching (BMPS)[1], which try to find a successful execution trace by switching outcomes of multiple predicates. Substantively, BMPS focuses on the program faults which are caused by control flow. However, this kind of faults represent only a small fraction. In this paper, we present an algorithm combining BMPS with a semantic based debugging method, which is aimed at locating more than control flow related faults. The semantic based debugging algorithm generates a sequence of equations from the execution trace of a failed test case, and give a minimum faulty program segment according to solutions of the equations. Our algorithm can locate multiple faults in the program one by one through an iterative and interactive process. Moreover, an optimization based on use-define chain is applied to BMPS for improving efficiency of the algorithm, as well as some other methods. To evaluate out approach, we conduct experiment on Siemens suite. The result indicates that our method has significant improvement on both accuracy and efficiency.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Liu, Y., Li, B.: Automated program debugging via multiple predicate switching. In: AAAI (2010)

    Google Scholar 

  2. Wong, W.E., Debroy, V.: A survey of software fault localization. Department of Computer Science, University of Texas at Dallas, Technical report UTDCS-45 9 (2009)

    Google Scholar 

  3. Cleve, H., Zeller, A.: Locating causes of program failures. In: Proceedings of the 27th International Conference on Software Engineering, pp. 342–351. ACM (2005)

    Google Scholar 

  4. Zhang, X., Gupta, N., Gupta, R.: Locating faults through automated predicate switching. In: Proceedings of the 28th International Conference on Software Engineering, pp. 272–281. ACM (2006)

    Google Scholar 

  5. Challenge, D.: Satisfiability: Suggested format. DIMACS Challenge, DIMACS (1993)

    Google Scholar 

  6. Muchnick, S.S.: Advanced Compiler Design Implementation. Morgan Kaufmann, San Francisco (1997)

    Google Scholar 

  7. Sinn, M., Zuleger, F.: Loopus-a tool for computing loop bounds for c programs. In: WING@ ETAPS/IJCAR, Citeseer, pp. 185–186 (2010)

    Google Scholar 

  8. Clarke, E., Kroning, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  9. Clarke, E., Kroening, D., Yorav, K.: Behavioral consistency of c and verilog programs using bounded model checking. In: Design Automation Conference, Proceedings, pp. 368–371. IEEE (2003)

    Google Scholar 

  10. de Moura, L., Bjørner, N.S.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  11. Weiser, M.: Program slicing. In: Proceedings of the 5th International Conference on Software Engineering, pp. 439–449. IEEE Press (1981)

    Google Scholar 

  12. Agrawal, H., Horgan, J.R.: Dynamic program slicing. In: ACM SIGPLAN Notices, vol. 25, 246–256. ACM (1990)

    Google Scholar 

  13. Griesmayer, A., Staber, S., Bloem, R.: Automated fault localization for C programs. Electron. Notes Theoret. Comput. Sci. 174, 95–111 (2007)

    Article  Google Scholar 

  14. Jose, M., Majumdar, R.: Cause clue clauses: error localization using maximum satisfiability. ACM SIGPLAN Notices 46, 437–446 (2011)

    Article  Google Scholar 

  15. Groce, A., Chaki, S., Kroening, D., Strichman, O.: Error explanation with distance metrics. Int. J. Soft. Tools Technol. Transf. 8, 229–247 (2006)

    Article  Google Scholar 

  16. Ball, T., Naik, M., Rajamani, S.K.: From symptom to cause: localizing errors in counterexample traces. In: ACM SIGPLAN Notices. vol. 38, pp. 97–105. ACM (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Aishan Liu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this paper

Cite this paper

Liu, A., Li, L., Luo, J. (2016). Automated Program Debugging for Multiple Bugs Based on Semantic Analysis. In: Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2015. Lecture Notes in Computer Science(), vol 9559. Springer, Cham. https://doi.org/10.1007/978-3-319-31220-0_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-31220-0_7

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-31219-4

  • Online ISBN: 978-3-319-31220-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics