Offline Symbolic Analysis for Multi-Processor Execution Replay
Ability to replay a program's execution on a multi-processor system can significantly help parallel programming. To replay a shared-memory multi-threaded program, existing solutions record its program input (I/O, DMA, etc.) and the shared-memory dependencies between threads. Prior processor based record-and-replay solutions are efficient, but they require non-trivial modifications to the coherency protocol and the memory sub-system for recording the shared-memory dependencies. This paper proposes a processor-based record-and-replay solution that does not require detecting and logging shared-memory dependencies to enable multi-processor execution replay.