Patent ID: 7739664

Claim:
A debugging method, comprising: specifying at least one expression in a computer program to be debugged; establishing at least one collection point in the computer program; storing the expression in an expression table; executing the computer program in a collection mode, wherein executing the computer program in the collection mode comprises performing a first execution of the computer program without interruption of program execution at the at least one collection point, and storing a first execution value of the at least one expression at the at least one collection point; executing the computer program in a detection mode, wherein executing the computer program in the detection mode comprises performing a second execution of the computer program, determining a second execution value of the at least one expression at the at least one collection point, storing the first execution value and the second execution value in the expression table; comparing the first execution value and the second execution value; conditionally interrupting the second execution of the computer program in response to a comparison of the first execution value and the second execution value, wherein conditionally interrupting the second execution of the computer program comprises halting the second execution of the computer program at the at least one collection point in response to a determination that the second execution value and the first execution value differ; generating from the expression table a history of values of the expression and orders of execution at the at least one collection point along with expected values of the expression, wherein the history of values of the expression comprise the first and second execution values; and displaying the expression table, the at least one collection point, and source code of the computer program.