Reversible debugging using program instrumentation | Synapse