Assembly Instruction Level Reverse Execution for Debugging