Affiliation:
1. Hong Kong University of Science and Technology, China
2. Microsoft Research, China
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Set-Covering Approach to Customized Coverage Instrumentation;INFORMS Journal on Computing;2023-10-09
2. Improving Testing by Mimicking User Behavior;2020 IEEE International Conference on Software Maintenance and Evolution (ICSME);2020-09
3. Does the fault reside in a stack trace? Assisting crash localization by predicting crashing fault residence;Journal of Systems and Software;2019-02
4. On Accelerating Source Code Analysis at Massive Scale;IEEE Transactions on Software Engineering;2018-07-01
5. Calling-to-reference context translation via constraint-guided CFL-reachability;Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation;2018-06-11