Towards Pragmatic Library-based Replay
Zhenyu Guo, Xuezheng Liu, Wei Lin, Zheng Zhang · 2008
Deterministic replay is a powerful approach for debugging multi-threaded and distributed applications that involve complex non-determinism. Recently, several replay tools based on user-space libraries were proposed. Such library-based tools are lightweight and efficient, and focus on the application being debugged. However, several significant problems remain, such as in-address-space tool interference, absence of support for advanced features in modern operating systems (e.g. asynchronous I/O), and error-prone engineering efforts for wrapping a large set of API functions to enable logging and replaying. We propose three mechanisms to cope with these problems. First, we resolve the tool interference problem by space separation, using a virtual execution layer composed of intercepted functions. The virtual execution layer isolates both memory and execution of