Patent ID: 7577942

Claim:
A computer-implemented method for debugging a program in a distributed debugging environment linking at least a first and second computing system over a communications network, comprising: displaying, on a display interface of a debugger application executing on the first computing system, a value of one or more data variables of the program being debugged; receiving a command to execute the program being debugged, wherein the program is executed by at least the second computing system; in response to receiving the command, executing, by at least the second computing system, the program from a first execution point to a second execution point: determining, based on the first and second execution points, which data variables are capable of being modified by the execution of the program, wherein the determining comprises: (i) if a node of a control flow graph that contains the first execution point of the program contains a breakpoint positioned after the first execution point, marking all data variables referenced during the execution of each statement of the node from the first execution point to the breakpoint as variables capable of being modified by the program during the execution of the program from the first execution point to the breakpoint, and executing each statement of the node from the first execution point to the breakpoint; (ii) otherwise, beginning with a root node, marking each node of the control flow graph from which flow of the program can be exited and reentered during execution of the program from the first execution point to the second execution point, for each marked node, marking all data variables of the node as variables capable of being modified by the program during the execution of the program from the first execution point to the second execution point, and beginning with the node containing the first execution point, generating a list of unmarked nodes reachable during execution of the program from the first execution point; and refreshing the value displayed on the display interface of the debugger application executing on the first computing system, only for the data variables marked as capable of being modified by the execution of the program from the first execution point to the second execution point.