Click here for full text:
Jockey: A user-space library for record-replay debugging
Keyword(s): Jockey; debugging; Linux
Abstract: This paper describes Jockey, an execution record/replay tool for debugging distributed Linux programs. Jockey is implemented as a shared object file that is linked to the target program. Jockey rewrites those system calls and CPU instructions with non-deterministic effects and records and replays their invocations. It supports diagnosing long-running programs by taking periodic process checkpoints and enabling "time travel" to an arbitrary moment of execution. Jockey's performance overhead is negligible for CPU intensive applications, and 30% in the worst case of I/O intensive network servers. The implementation of Jockey is complicated by the fact that Jockey and the target program runs as a single process, sharing all the resources including the memory and the file-descriptor table. This paper describes techniques we developed to ensure deterministic execution record and replay of even buggy programs.
Back to Index