iReplayer:面向多线程应用的原位相同记录与重放
操作系统
2018-04-05 v1
摘要
由于许多内在与外部的非确定性因素,重放多线程程序的执行非常具有挑战性。现有记录与重放(RnR)系统在性能开销方面取得了显著进展,但均不针对原位(in-situ)设置,即重放发生在与记录进程相同的进程内。此外,大多数现有工作无法实现相同(identical)重放,这可能阻碍某些错误的复现。本文提出 iReplayer,旨在原始进程中(于“原位”设置下)相同地重放多线程程序。iReplayer 新颖的原位与相同重放使其更有可能复现错误,并允许其直接采用调试机制(如监视点)来辅助故障诊断。目前,iReplayer 平均仅带来 3% 的性能开销,使其能够在生产环境中始终开启。iReplayer 开启了一系列可能性,本文给出三个示例:两个用于检测缓冲区溢出与释放后使用(use-after-free)漏洞的自动化工具,以及一个与 GDB 集成的交互式调试工具。
引用
@article{arxiv.1804.01226,
title = {iReplayer: In-situ and Identical Record-and-Replay for Multithreaded Applications},
author = {Hongyu Liu and Sam Silvestro and Wei Wang and Chen Tian and Tongping Liu},
journal= {arXiv preprint arXiv:1804.01226},
year = {2018}
}
备注
16 pages, 5 figures, to be published at PLDI'18