effective interprocedural resource leak detection
Garbage collection relieves programmers from the burden of explicit memory management. However, explicit management is still required for finite system resources , such as I/O streams, fonts, and database connections. Failure to release unneeded system resources results in resource leaks , which can lead to performance degradation and system crashes. In this paper, we present a new tool, Tracker, that performs static analysis to find resource leaks in Java programs. Tracker is an industrial-strength tool that is usable in an interactive setting: it works on millions of lines of code in a matter of minutes and it has a low false positive rate. We describe the design, implementation and evaluation of Tracker, focusing on the features that make the tool scalable and its output actionable by the user.
resource leaks inter-procedural analysis alias analysis