A framework for the deterministic record and replay of multi-threaded applications