ACM Home Page
Please provide us with feedback. Feedback
Context-aware statistical debugging: from bug predictors to faulty control flow paths
Full text PdfPdf (407 KB)
Source
Automated Software Engineering archive
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering table of contents
Atlanta, Georgia, USA
SESSION: Debugging table of contents
Pages 184-193  
Year of Publication: 2007
ISBN:978-1-59593-882-4
Authors
Lingxiao Jiang  University of California at Davis, Davis, CA
Zhendong Su  University of California at Davis, Davis, CA
Sponsors
ACM: Association for Computing Machinery
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 95,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1321631.1321660
What is a DOI?

ABSTRACT

Effective bug localization is important for realizing automated debugging. One attractive approach is to apply statistical techniques on a collection of evaluation profiles of program properties to help localize bugs. Previous research has proposed various specialized techniques to isolate certain program predicates as bug predictors. However, because many bugs may not be directly associated with these predicates, these techniques are often ineffective in localizing bugs. Relevant control flow paths that may contain bug locations are more informative than stand-alone predicates for discovering and understanding bugs. In this paper, we propose an approach to automatically generate such faulty control flow paths that link many bug predictors together for revealing bugs. Our approach combines feature selection (to accurately select failure-related predicates as bug predictors), clustering (to group correlated predicates), and control flow graph traversal in a novel way to help generate the paths. We have evaluated our approach on code including the Siemens test suite and rhythmbox (a large music management application for GNOME). Our experiments show that the faulty control flow paths are accurate, useful for localizing many bugs, and helped to discover previously unknown errors in rhythmbox


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
H. Agrawal, J. R. Horgan, S. London, and W. E. Wong. Fault localization using execution slices and dataflow tests. In International Symposium on Software Reliability Engineering (ISSRE), pages 143--151, 1995.
2
3
 
4
P. Berkhin. Survey of clustering data mining techniques. Technical report, Accrue Software, San Jose, CA, 2002.
 
5
J. F. Bowring, M. J. Harrold, and J. M. Rehg. Improving the classification of software behaviors using ensembles. Technical report, Georgia Institute of Technology, 2005.
6
 
7
 
8
 
9
10
 
11
C.-C. Chang and C.-J. Lin. LIBSVM: a library for support vector machines. http://www.csie.ntu.edu.tw/~cjlin/libsvm.
 
12
13
 
14
 
15
N. Dodoo, L. Lin, and M. D. Ernst. Selecting, refining, and evaluating predicates for program analysis. Technical Report MIT-LCS-TR-914, MIT Laboratory for Computer Science, Cambridge, MA, July 21, 2003.
16
17
18
19
 
20
A. Groce and R. Joshi. Exploiting traces in program analysis. In Tools and Algorithms for Construction and Analysis of Systems (TACAS), volume 3920 of Lecture Notes in Computer Science (LNCS), pages 379--393. Springer, 2006.
21
22
23
 
24
M. J. Harrold and G. Rothermel. Aristotle Analysis System - Siemens Programs, HR Variants. http://www.cc.gatech.edu/aristotle/Tools/subjects/.
 
25
M. Heiler, D. Cremers, and C. Schnörr. Efficient feature subset selection for support vector machines. Technical Report 21/2001, Computer Science Series, University of Mannheim.
 
26
27
 
28
L. Jiang and Z. Su. Automatic isolation of cause-effect chains with machine learning. Technical Report CSE-2005-32, UC Davis, 2005.
29
30
31
 
32
A. Lal, J. Lim, M. Polishchuk, and B. Liblit. Path optimization in programs and its application to debugging. In European Symposium on Programming (ESOP), volume 3924 of Lecture Notes in Computer Science (LNCS), pages 246--263. SpringerESE, 2006.
33
 
34
B. Liblit. Bug 137460: dangling timeout event source ID causes crashes. http://bugzilla.gnome.org/show_bug.cgi?id=137460.
 
35
B. Liblit. Bug 137834: dangling RBShellPlayer callbacks cause crashes. http://bugzilla.gnome.org/show_bug.cgi?id=137834.
 
36
B. Liblit. The Cooperative Bug Isolation Project. http://www.cs.wisc.edu/cbi/.
 
37
38
39
40
41
42
 
43
44
45
 
46
H. Pan and E. H. Spafford. Heuristics for automatic localization of software faults. Technical Report SERC-TR-116-P, Purdue University, 1992.
47
 
48
 
49
M. Renieris and S. P. Reiss. Fault localization with nearest neighbor queries. In ASE, 2003.
50
 
51
Rhythmbox. Music management application for GNOME. http://www.rhythmbox.org.
 
52
Salford Systems Inc. RandomForestsTM. http://www.salford-systems.com/.
53
 
54
55
56
 
57
58
 
59
A. X. Zheng, M. I. Jordan, B. Liblit, and A. Aiken. Statistical debugging of sampled programs. In Neural Information Processing Systems (NIPS). 2003.


Collaborative Colleagues:
Lingxiao Jiang: colleagues
Zhendong Su: colleagues