Visible to the public Casper: An Efficient Approach to Call Trace Collection

TitleCasper: An Efficient Approach to Call Trace Collection
Publication TypeConference Paper
Year of Publication2016
AuthorsWu, Rongxin, Xiao, Xiao, Cheung, Shing-Chi, Zhang, Hongyu, Zhang, Charles
Conference NameProceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-3549-2
KeywordsCall Trace, Human Behavior, instrumentation, Metrics, multiple fault diagnosis, Overhead, pubcrawl, Resiliency
Abstract

Call traces, i.e., sequences of function calls and returns, are fundamental to a wide range of program analyses such as bug reproduction, fault diagnosis, performance analysis, and many others. The conventional approach to collect call traces that instruments each function call and return site incurs large space and time overhead. Our approach aims at reducing the recording overheads by instrumenting only a small amount of call sites while keeping the capability of recovering the full trace. We propose a call trace model and a logged call trace model based on an LL(1) grammar, which enables us to define the criteria of a feasible solution to call trace collection. Based on the two models, we prove that to collect call traces with minimal instrumentation is an NP-hard problem. We then propose an efficient approach to obtaining a suboptimal solution. We implemented our approach as a tool Casper and evaluated it using the DaCapo benchmark suite. The experiment results show that our approach causes significantly lower runtime (and space) overhead than two state-of-the-arts approaches.

URLhttp://doi.acm.org/10.1145/2837614.2837619
DOI10.1145/2837614.2837619
Citation Keywu_casper:_2016