Patent ID: 7676795

Claim:
A computer program product comprising computer executable instructions, stored on a computer readable medium, for compiling executable code enabled to detect errors in a data processing system, comprising: computer code for generating original assembler code from source code, wherein the original assembler code comprises a set of basic blocks; computer code for identifying a main error detection segment (EDS) in the original assembler code, wherein the main EDS encompasses one or more of the basic blocks, and wherein the main EDS has a single entry point and one or more exit points; computer code for identifying register and memory references in the main EDS; and computer code for modifying the original assembler code by inserting a set of state recording instructions in the main EDS, wherein the state recording instructions, when executed, record, in a main checkpoint, an entry state of the identified register and memory references including information indicative of register and memory values read by the main EDS as they exist when control flow enters the EDS at the entry point and an exit state of the identified register and memory references modified by the main EDS including their values and addresses as they exist when control flow exits the EDS at an exit point, and wherein the information recorded by the state recording instructions is utilized to detect soft errors in hardware of the data processing system.