Logging and replay is important to reproducing software failures and recovering from failures. Replaying a long execution is time consuming, especially when replay is further integrated with runtime techniques that require expensive instrumentation, such as dependence detection. In this paper, we propose a technique to reduce a replay log while retaining its ability to reproduce a failure. While traditional logging records only system calls and signals, our technique leverages the compiler to selectively collect additional information on the fly. Upon a failure, the log can be reduced by analyzing itself. The collection is highly optimized. The runtime overhead is trivial (2.6% average) and the size of additional log is comparable to the original log. Substantial reduction can be cost effectively achieved through a search based algorithm. The reduced log is guaranteed to reproduce the failure.
@inproceedings{DBLP:conf/pldi/LeeZSZ11, author = {Kyu Hyung Lee and Yunhui Zheng and Nick Sumner and Xiangyu Zhang}, title = {Toward generating reducible replay logs}, booktitle = {PLDI}, year = {2011}, pages = {246-257}, ee = {http://doi.acm.org/10.1145/1993498.1993528}, crossref = {DBLP:conf/pldi/2011}, bibsource = {DBLP, http://dblp.uni-trier.de} }