Presents a methodology to debug distributed programs on the asynchronous message-passing process-model (one thread per address space) based on deterministic re-execution (replay).