ACM Home Page
Please provide us with feedback. Feedback
Towards locating execution omission errors
Full text PdfPdf (283 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation table of contents
San Diego, California, USA
SESSION: Errors detected table of contents
Pages: 415 - 424  
Year of Publication: 2007
ISBN:978-1-59593-633-2
Also published in ...
Authors
Xiangyu Zhang  Purdue University, West Lafayette, IN
Sriraman Tallam  Universty of Arizona, Tucson, AZ
Neelam Gupta  University of Arizona, Tucson, AZ
Rajiv Gupta  University of Arizona, Tucson, AZ
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 62,   Citation Count: 4
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/1250734.1250782
What is a DOI?

ABSTRACT

Execution omission errors are known to be difficult to locate using dynamic analysis. These errors lead to a failure at runtime because of the omission of execution of some statements that would have been executed if the program had no errors. Since dynamic analysis is typically designed to focus on dynamic information arising from executed statements, and statements whose execution is omitted do not produce dynamic information, detection of execution omission errors becomes a challenging task. For example, while dynamic slices are very effective in capturing faulty code for other types of errors, they fail to capture faulty code in presence of execution omission errors. To address this issue relevant slices have been defined to consider certain static dependences (called potential dependences) in addition to dynamic dependences. However, due to the conservative nature of static analysis, overly large slices are produced. In this paper, we propose a fully dynamic solution to locating execution omission errors using dynamic slices. We introduce the notion of implicit dependences which are dependences that are normally invisible to dynamic slicing due to the omission of execution of some statements. We design a dynamic method that forces the execution of the omitted code by switching outcomes of relevant predicates such that those implicit dependences are exposed and become available for dynamic slicing. Dynamic slices can be computed and effectively pruned to produce fault candidate sets containing the execution omission errors. We solve two main problems: verifying the existence of a single implicit dependence through predicate switching, and recovering the implicit dependences in a demand driven manner such that a small number of verifications are required before the root cause is captured. Our experiments show that the proposed technique is highly effective in capturing execution omission errors.


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
 
2
3
4
5
6
7
 
8
9
10
 
11
Manos Renieris and Steven Reiss. Fault localization with nearest neighbor queries. In ASE '03: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, pages 30--39, Montreal, Canada, 2003.
 
12
13
 
14
J. Seward and N. Nethercote. Valgrind, an open-source memory debugger for x86-gnu/linux. In http://valgrind.kde.org/.
 
15
16
17
18
19
20


Collaborative Colleagues:
Xiangyu Zhang: colleagues
Sriraman Tallam: colleagues
Neelam Gupta: colleagues
Rajiv Gupta: colleagues