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}
}