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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Liu, Y., Li, B.: Automated program debugging via multiple predicate switching. In: AAAI (2010)
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)
Cleve, H., Zeller, A.: Locating causes of program failures. In: Proceedings of the 27th International Conference on Software Engineering, pp. 342–351. ACM (2005)
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)
Challenge, D.: Satisfiability: Suggested format. DIMACS Challenge, DIMACS (1993)
Muchnick, S.S.: Advanced Compiler Design Implementation. Morgan Kaufmann, San Francisco (1997)
Sinn, M., Zuleger, F.: Loopus-a tool for computing loop bounds for c programs. In: WING@ ETAPS/IJCAR, Citeseer, pp. 185–186 (2010)
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)
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)
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)
Weiser, M.: Program slicing. In: Proceedings of the 5th International Conference on Software Engineering, pp. 439–449. IEEE Press (1981)
Agrawal, H., Horgan, J.R.: Dynamic program slicing. In: ACM SIGPLAN Notices, vol. 25, 246–256. ACM (1990)
Griesmayer, A., Staber, S., Bloem, R.: Automated fault localization for C programs. Electron. Notes Theoret. Comput. Sci. 174, 95–111 (2007)
Jose, M., Majumdar, R.: Cause clue clauses: error localization using maximum satisfiability. ACM SIGPLAN Notices 46, 437–446 (2011)
Groce, A., Chaki, S., Kroening, D., Strichman, O.: Error explanation with distance metrics. Int. J. Soft. Tools Technol. Transf. 8, 229–247 (2006)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)