Accurate Reification of Complete Supertype Information for Dynamic Analysis on the JVM
Reflective supertype information (RSI) is useful for many instrumentation-based dynamic analyses on the Java Virtual Machine (JVM). On the one hand, while such information can be obtained when performing the instrumentation within the same JVM process executing the instrumented program, in-process instrumentation severely limits the code coverage of the analysis. On the other hand, performing the instrumentation in a separate process can achieve full code coverage, but complete RSI is generally not available, often requiring expensive runtime checks in the instrumented program. Providing accurate and complete RSI in the instrumentation process is challenging because of dynamic class loading and classloader namespaces.
In this paper, we present a novel technique to accurately reify complete RSI in a separate instrumentation process.
We implement our technique in the dynamic analysis framework DiSL and evaluate it on a task profiler, achieving speedups of up to 45% for an analysis with full code coverage.
this URL might only work when visiting from a http://www.sigplan.org/ URL.
Mon 23 Oct Times are displayed in time zone: Tijuana, Baja California change
15:30 - 17:00 | |||
15:30 25mTalk | Type Qualifiers as Composable Language Extensions GPCE 2017 DOI Authorizer link | ||
15:55 25mTalk | Accurate Reification of Complete Supertype Information for Dynamic Analysis on the JVM GPCE 2017 Andrea RosàUniversity of Lugano, Switzerland, Eduardo RosalesUniversity of Lugano, Switzerland, Walter BinderUniversity of Lugano, Switzerland DOI Authorizer link | ||
16:20 25mTalk | Rewriting for Sound and Complete Union, Intersection and Negation Types GPCE 2017 David J. PearceVictoria University of Wellington, New Zealand DOI Authorizer link |