| Automatic documentation inference for exceptions |
| Full text |
Pdf
(348 KB)
|
Source
|
International Symposium on Software Testing and Analysis
archive
Proceedings of the 2008 international symposium on Software testing and analysis
table of contents
Seattle, WA, USA
SESSION: Inference
table of contents
Pages 273-282
Year of Publication: 2008
ISBN:978-1-60558-050-0
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 1, Downloads (12 Months): 76, Citation Count: 1
|
|
|
ABSTRACT
Exception handling is a powerful and widely-used programming language abstraction for constructing robust software systems. Unfortunately, it introduces an inter-procedural flow of control that can be difficult to reason about. Failure to do so correctly can lead to security vulnerabilities, breaches of API encapsulation, and any number of safety policy violations. We present a fully automated tool that statically infers and characterizes exception-causing conditions in Java programs. Our tool is based on an inter-procedural, context-sensitive analysis. The output of this tool is well-suited for use as human-readable documentation of exceptional conditions. We evaluate the output of our tool by comparing it to over 900 instances of existing exception documentation in almost two million lines of code. We find that the output of our tool is at least as good as existing documentation 85% of the time and is better 25% of the time.
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
|
T. Cargill. Exception handling: a false sense of security. C++ Report, 6(9), 1994.
|
| |
5
|
|
 |
6
|
Byeong-Mo Chang , Jang-Wu Jo , Kwangkeun Yi , Kwang-Moo Choe, Interprocedural exception analysis for Java, Proceedings of the 2001 ACM symposium on Applied computing, p.620-625, March 2001, Las Vegas, Nevada, United States
[doi> 10.1145/372202.372786]
|
| |
7
|
|
 |
8
|
Jong-Deok Choi , David Grove , Michael Hind , Vivek Sarkar, Efficient and precise modeling of exceptions for the analysis of Java programs, Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.21-31, September 06-06, 1999, Toulouse, France
|
 |
9
|
|
 |
10
|
|
 |
11
|
Dawson Engler , David Yu Chen , Seth Hallem , Andy Chou , Benjamin Chelf, Bugs as deviant behavior: a general approach to inferring errors in systems code, Proceedings of the eighteenth ACM symposium on Operating systems principles, October 21-24, 2001, Banff, Alberta, Canada
|
| |
12
|
R. V.-R. et. al. Soot -- a java optimization framework. In Proceedings of CASCON 1999, pages 125--135, 1999.
|
 |
13
|
Cormac Flanagan , K. Rustan M. Leino , Mark Lillibridge , Greg Nelson , James B. Saxe , Raymie Stata, Extended static checking for Java, Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, June 17-19, 2002, Berlin, Germany
|
 |
14
|
|
| |
15
|
|
 |
16
|
|
 |
18
|
|
 |
19
|
|
 |
20
|
|
 |
21
|
|
| |
23
|
D. Malayeri and J. Aldrich. Practical exception specifications. In Advanced Topics in Exception Handling Techniques, pages 200--220, 2006.
|
| |
24
|
K. L. McMillan. Applications of craig interpolants in model checking. In Tools and Algorithms for the Construction and Analysis of Systems, pages 1--12, 2005.
|
| |
25
|
R. Miller and A. Tripathi. Issues with exception handling in object-oriented systems. In European Conference on Object-Oriented Programming, pages 85--103, 1997.
|
 |
26
|
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
 |
30
|
|
 |
31
|
|
| |
32
|
|
| |
33
|
|
 |
34
|
Margo I. Seltzer , Yasuhiro Endo , Christopher Small , Keith A. Smith, Dealing with disaster: surviving misbehaved kernel extensions, Proceedings of the second USENIX symposium on Operating systems design and implementation, p.213-227, October 29-November 01, 1996, Seattle, Washington, United States
|
| |
35
|
|
| |
36
|
|
 |
37
|
|
 |
38
|
|
 |
39
|
Westley Weimer , George C. Necula, Finding and preventing run-time error handling mistakes, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
 |
40
|
|
| |
57
|
|
| |
74
|
O. Lhoták and L. Hendren. Scaling Java points--to analysis using Spark. In G. Hedin, editor, Compiler Construction, 12th International Conference, volume 2622 of LNCS, pages 153--169, Warsaw, Poland, April 2003. Springer.
|
|