ACM Home Page
Please provide us with feedback. Feedback
PSE: explaining program failures via postmortem static analysis
Full text PdfPdf (218 KB)
Source Foundations of Software Engineering archive
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering table of contents
Newport Beach, CA, USA
SESSION: Error explanation table of contents
Pages: 63 - 72  
Year of Publication: 2004
ISBN:1-58113-855-5
Also published in ...
Authors
Roman Manevich  Tel Aviv University
Manu Sridharan  University of California at Berkeley
Stephen Adams  Microsoft Corporation
Manuvir Das  Microsoft Corporation
Zhe Yang  Microsoft Corporation
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 39,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1029894.1029907
What is a DOI?

ABSTRACT

In this paper, we describe PSE (Postmortem Symbolic Evaluation), a static analysis algorithm that can be used by programmers to diagnose software failures. The algorithm requires minimal information about a failure, namely its kind (e.g. NULL dereference), and its location in the program's source code. It produces a set of execution traces along which the program can be driven to the given failure.

PSE tracks the flow of a single value of interest from the point in the program where the failure occurred back to the points in the program where the value may have originated. The algorithm combines a novel dataflow analysis and memory alias analysis in a manner that allows for precise exploration of the program's behavior in polynomial time.

We have applied PSE to the problem of diagnosing potential NULL-dereference errors in a suite of C programs, including several SPEC benchmarks and a large commercial operating system. In most cases, the analysis is able to either validate a pointer dereference, or find precise error traces demonstrating a NULL value for the pointer, in less than a second.


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
Hiraral Agrawal, Joseph R. Horgan, Saul London, and W. Eric Wong. Fault Localization using Execution Slices and Dataflow Tests. In Proceedings of the IEEE International Symposium on Software Reliability Engineering, October 1995.
 
3
4
 
5
 
6
Peter Bunus and Peter Fritzson. Semi-Automatic Fault Localization and Behavior Verification for Physical System Simulation Models. In Proceedings of the IEEE International Conference on Automated Software Engineering, October 2003.
 
7
8
 
9
Microsoft Corporation. Microsoft Online Crash Analysis. http://oca.microsoft.com/en/dcp20.asp.
10
11
 
12
13
 
14
15
16
17
 
18
 
19
Hsin Pan and Eugene H. Spafford. Toward Automatic Localization of Software Faults. In Proceedings of the Pacific Northwest Software Quality Conference, October 1992.
 
20
Brock Pytlik, Manos Renieris, Shriram Krishnamurthi, and Steven P. Reiss. Automated Fault Localization Using Potential Invariants. In Proceedings of the International Workshop on Automated and Algorithmic Debugging, September 2003.
21
 
22
 
23
 
24
Frank Tip. A survey of program slicing techniques. Journal of programming languages, 3:121--189, 1995.
 
25

CITED BY  8
 

Collaborative Colleagues:
Roman Manevich: colleagues
Manu Sridharan: colleagues
Stephen Adams: colleagues
Manuvir Das: colleagues
Zhe Yang: colleagues