Automatic Root Cause Quantification for Missing Edges in JavaScript Call GraphsVCOOP 2022
Building sound and precise static call graphs for real-world JavaScript applications poses an enormous challenge, due to many hard-to-analyze language features. Further, the relative importance of these features may vary depending on the call graph algorithm being used and the class of applications being analyzed. In this paper, we present a technique to \emph{automatically} quantify the relative importance of different root causes of call graph unsoundness for a set of target applications. The technique works by identifying the dynamic function data flows relevant to each missing call edge that were missed by the static analysis, correctly handling cases with multiple root causes and inter-dependent calls. We apply our approach to a detailed study of the recall of a state-of-the-art call graph construction technique on a set of framework-based web applications. The study yielded a number of useful insights; we found that while dynamic property accesses were the most common root cause of missed edges across the benchmarks, other root causes varied in importance depending on the benchmark, potentially useful information for an analysis designer. Further, we were able to quickly identify and fix a recall issue in the call graph builder we studied, and we found that the potential impact of a recent technique for improved Node.js call graph construction would likely be lower for web applications. All of our code and data will be made public, and many components of our technique can be re-used to facilitate future studies.
Thu 16 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:00 - 16:30 | |||
15:00 30mTalk | PEDroid: Automatically Extracting Patches from Android App UpdatesVCOOP 2022 Research Papers Hehao Li Shanghai Jiao Tong University, Yizhuo Wang Shanghai Jiao Tong University, Yiwei Zhang Shanghai Jiao Tong University, Juanru Li Shanghai Jiao Tong University, Dawu Gu Shanghai Jiao Tong University | ||
15:30 30mTalk | Ferrite: A Judgmental Embedding of Session Types in RustVCOOP 2022ECOOP 2022 Research Papers Ruo Fei Chen Independent Researcher, Stephanie Balzer Carnegie Mellon University, Bernardo Toninho Nova University of Lisbon / NOVA-LINCS Pre-print | ||
16:00 30mTalk | Automatic Root Cause Quantification for Missing Edges in JavaScript Call GraphsVCOOP 2022 Research Papers Madhurima Chakraborty University of California, Riverside, Renzo Olivares University of California, Riverside, Manu Sridharan University of California at Riverside, Behnaz Hassanshahi Oracle Labs, Australia Pre-print |