Pruning, Pushdown Exception-Flow Analysis
Shuying Liang, Weibin Sun, Matthew Might, Andy Keep, David Van Horn

TL;DR
This paper introduces a precise, scalable static analysis framework for exception-flows in object-oriented languages, combining pushdown control-flow pruning and enhanced reachability techniques to improve accuracy over traditional methods.
Contribution
It presents a novel pushdown control-flow analysis for exceptions and integrates generalized abstract garbage collection with liveness analysis for better points-to precision.
Findings
Significantly improves analysis precision over traditional methods.
Maintains reasonable analysis time for large Java applications.
Effectively matches throwers to catchers for precise exception handling.
Abstract
Statically reasoning in the presence of exceptions and about the effects of exceptions is challenging: exception-flows are mutually determined by traditional control-flow and points-to analyses. We tackle the challenge of analyzing exception-flows from two angles. First, from the angle of pruning control-flows (both normal and exceptional), we derive a pushdown framework for an object-oriented language with full-featured exceptions. Unlike traditional analyses, it allows precise matching of throwers to catchers. Second, from the angle of pruning points-to information, we generalize abstract garbage collection to object-oriented programs and enhance it with liveness analysis. We then seamlessly weave the techniques into enhanced reachability computation, yielding highly precise exception-flow analysis, without becoming intractable, even for large applications. We evaluate our pruned,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
