Sciweavers

OOPSLA
2004
Springer

Finding and preventing run-time error handling mistakes

14 years 4 months ago
Finding and preventing run-time error handling mistakes
It is difficult to write programs that behave correctly in the presence of run-time errors. Existing programming language features often provide poor support for executing clean-up code and for restoring invariants in such exceptional situations. We present a dataflow analysis for finding a certain class of error-handling mistakes: those that arise from a failure to release resources or to clean up properly along all paths. Many real-world programs violate such resource safety policies because of incorrect error handling. Our flow-sensitive analysis keeps track of outstanding obligations along program paths and does a precise modeling of control flow in the presence of exceptions. Using it, we have found over 800 error handling mistakes almost 4 million lines of Java code. The analysis is unsound and produces false positives, but a few simple filtering rules suffice to remove them in practice. The remaining mistakes were manually verified. These mistakes cause sockets, files an...
Westley Weimer, George C. Necula
Added 02 Jul 2010
Updated 02 Jul 2010
Type Conference
Year 2004
Where OOPSLA
Authors Westley Weimer, George C. Necula
Comments (0)