1. An apparatus comprising: a memory to store data; an arithmetic logic unit to perform logical and arithmetic operations; and a control unit, coupled to the memory and the arithmetic logic unit, the control unit to decode instructions and to write a current data state to a buffer allocated in the memory when the current data state will be overwritten by a currently executing instruction, wherein the current data state to be overwritten is associated with a timestamp and an instruction address.