ECOOP 2018
Sun 15 - Sat 21 July 2018 Amsterdam, Netherlands
co-located with ECOOP and ISSTA
Tue 17 Jul 2018 11:40 - 12:00 at Zurich II - Static Analysis Chair(s): Karim Ali

The dynamic proxy API is one of Java’s most widely-used dynamic features, permitting principled run-time code generation and linking. Dynamic proxies can implement any set of interfaces and forward method calls to a special object that handles them reflectively. The flexibility of dynamic proxies, however, comes at the cost of having a dynamically generated layer of bytecode that cannot be penetrated by current static analyses.

In this paper, we observe that the dynamic proxy API is stylized enough to permit static analysis. We show how the semantics of dynamic proxies can be modeled in a straightforward manner as logical rules in the Doop static analysis framework. This concise set of rules enables Doop’s standard analyses to process code behind dynamic proxies. We evaluate our approach by analyzing XCorpus, a corpus of real Java programs containing dynamic proxies: we fully handle 61% of the dynamic proxies found, missing the rest due to lack of computing resources or front-end (Soot) error. Our handling results in the analysis of significant portions of previously unreachable or incompletely-modeled code.

Tue 17 Jul

issta-2018-Technical-Papers
11:00 - 12:30: ISSTA Technical Papers - Static Analysis at Zurich II
Chair(s): Karim AliUniversity of Alberta
issta-2018-Technical-Papers11:00 - 11:20
Talk
Tukaram MuskeTata Consultancy Services Ltd, Rohith TalluriTata Consultancy Services Ltd, Alexander SerebrenikEindhoven University of Technology
issta-2018-Technical-Papers11:20 - 11:40
Talk
Neville GrechUniversity of Athens, George FourtounisUniversity of Athens, Adrian FrancalanzaUniversity of Malta, Yannis SmaragdakisUniversity of Athens
issta-2018-Technical-Papers11:40 - 12:00
Talk
George FourtounisUniversity of Athens, George KastrinisUniversity of Athens, Yannis SmaragdakisUniversity of Athens
issta-2018-Technical-Papers12:00 - 12:20
Talk
Luc BläserHochschule für Technik Rapperswil
issta-2018-Technical-Papers12:20 - 12:30