Dynamic state alteration techniques for automatically locating software errors

作者: Rajiv Gupta , Dennis Bernard Jeffrey

DOI:

关键词:

摘要: Software does not always behave as expected due to errors. These errors can potentially lead disastrous consequences. Unfortunately, debugging software be difficult and time-consuming. Many techniques automatically locate have been developed, but the results are far from ideal. Unlike other that analyze existing state information program executions, dynamic alteration modify of executions gain deeper insight into potential locations However, prior generally no more effective than techniques, come at expense increased computation time. This dissertation shows aggressive well-targeted both highly reasonably efficient. The Value Replacement technique performs alterations by replacing set values used in different statement instances failing executions. In a benchmarks, precisely identifies faulty 39 out 129 cases, whereas most previously known so 5 cases. generalized iteratively multiple A brute-force implementation require hours single error, developed reduce this timing requirement minutes errors. The Execution Suppression targeted memory suppressing (avoiding) effects statements involving corruption during The is able identify first point all analyzed benchmark programs; typically or close location error. multithreading including data races. While software-only suppression incurs an overhead 7.2x on average, reduced 1.8x using hardware support. Finally, machine learning called BugFix provides automated assistance modifying fix case study illustrates benefit technique.

参考文章(123)
Srikanth Kandula, Yuanyuan Zhou, Sudarshan M. Srinivasan, Christopher R. Andrews, Flashback: a lightweight extension for rollback and deterministic replay for software debugging usenix annual technical conference. pp. 3- 3 ,(2004)
Koen De Bosschere, Mark Christiaens, TRaDe, a topological approach to on-the-fly race detection in java programs JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1. pp. 15- 15 ,(2001)
Alex David Groce, Edmund M. Clarke, Error explanation and fault localization with distance metrics Carnegie Mellon University. ,(2005)
Frank Tip, A survey of program slicing techniques. Journal of Programming Languages. ,vol. 3, ,(1995)
Andy Chou, Dawson R. Engler, David Yu Chen, Bugs as Inconsistent Behavior: A General Approach to Inferring Errors in Systems Code. symposium on operating systems principles. pp. 57- 72 ,(2001)
Rajiv Gupta, Xiangyu Zhang, Fault location via precise dynamic slicing The University of Arizona.. ,(2006)
Shaz Qadeer, Jakob Rehof, Context-Bounded Model Checking of Concurrent Software Tools and Algorithms for the Construction and Analysis of Systems. pp. 93- 107 ,(2005) , 10.1007/978-3-540-31980-1_7
Michael E. Locasto, Angelos D. Keromytis, Stelios Sidiroglou, Stephen W. Boyd, Building a reactive immune system for software services usenix annual technical conference. pp. 11- 11 ,(2005) , 10.7916/D86D6562
Ramakrishnan Srikant, Rakesh Agrawal, Fast Algorithms for Mining Association Rules in Large Databases very large data bases. pp. 487- 499 ,(1994)