Checkpoint debugging using mirrored virtual machines
First Claim
1. A computer readable storage medium comprising computer readable code for debugging a computer program executing in a mirrored virtualized data processing system environment, which code, when executed by a processor causes the processor to:
- obtain state information corresponding to a previous operating state of the first machine at a checkpoint performed during the execution of the computer code on the first machine;
configure, with the state information obtained, a second machine having a same physical configuration to a same operating state as the previous operating state of the first machine at the checkpoint, wherein the second machine is a mirrored version of the first machine relative to execution of the computer code;
receive a notification indicating that execution of the computer code on the first machine has failed; and
in response to receiving the notification;
trigger a processor of the second machine to initiate execution of a copy of the computer code on the second machine from a specific code execution point at which the checkpoint was initiated on the first machine;
activate a debugger module to run concurrently with the execution of the copy of the computer code on the second machine and collect debug data corresponding to execution of the computer code on the second machine from the checkpoint up to the failure of the computer code execution on the second machine; and
store the debug data as debug data corresponding to execution failure of the computer code on the first machine.
1 Assignment
0 Petitions
Accused Products
Abstract
A system of debugging computer code includes a processor: obtaining state information corresponding to a first machine at a checkpoint initiated during execution of the computer code on the first machine; and configuring the second machine to a same operating state as the first machine at the checkpoint to create a mirrored version of the first machine. The system also includes receiving a notification that execution of the program on a first machine has failed, and in response to receiving the notification: triggering a processor of the second machine to initiate execution of a copy of the code from a specific code execution point at which the checkpoint was; activating a debugger module to run concurrently with the execution of the program on the second machine and collect and store the debug data as corresponding to execution failure of the computer code at the first machine.
-
Citations
14 Claims
-
1. A computer readable storage medium comprising computer readable code for debugging a computer program executing in a mirrored virtualized data processing system environment, which code, when executed by a processor causes the processor to:
-
obtain state information corresponding to a previous operating state of the first machine at a checkpoint performed during the execution of the computer code on the first machine; configure, with the state information obtained, a second machine having a same physical configuration to a same operating state as the previous operating state of the first machine at the checkpoint, wherein the second machine is a mirrored version of the first machine relative to execution of the computer code; receive a notification indicating that execution of the computer code on the first machine has failed; and in response to receiving the notification; trigger a processor of the second machine to initiate execution of a copy of the computer code on the second machine from a specific code execution point at which the checkpoint was initiated on the first machine; activate a debugger module to run concurrently with the execution of the copy of the computer code on the second machine and collect debug data corresponding to execution of the computer code on the second machine from the checkpoint up to the failure of the computer code execution on the second machine; and store the debug data as debug data corresponding to execution failure of the computer code on the first machine. - View Dependent Claims (2, 3, 4, 6, 7)
-
-
5. A computer readable storage medium comprising computer readable code for debugging a computer program executing in a mirrored virtualized data processing system environment, which code, when executed by a processor causes the processor to:
-
obtain state information corresponding to a previous operating state of the first machine at a checkpoint performed during the execution of the computer code on the first machine; configure, with the state information obtained, a second machine having a same physical configuration to a same operating state as the previous operating state of the first machine at the checkpoint, wherein the second machine is a mirrored version of the first machine relative to execution of the computer code; receive a notification indicating that execution of the computer code on the first machine has failed; and in response to receiving the notification; parse the notification for an indication of a failure type from among one or more pre-established failure types having associated failure characteristics and debug requirements; select, based on the failure type indicated within the notification, the state information corresponding to a selected checkpoint from among a plurality of previous checkpoints performed at different times on the first machine, with each of the plurality of previous checkpoints having a different set of state information and a different specific code execution point, wherein the selected checkpoint enables complete debugging of the failure type; trigger a processor of the second machine to initiate execution of a copy of the computer code on the second machine from a specific code execution point at which the checkpoint was initiated on the first machine; activate a debugger module to run concurrently with the execution of the copy of the computer code on the second machine and collect debug data corresponding to execution of the computer code on the second machine from the checkpoint up to the failure of the computer code execution on the second machine; run the debugger module from the selected checkpoint with one or more available debugger processes that enables debugging of the failure type; and store the debug data as debug data corresponding to execution failure of the computer code on the first machine.
-
-
8. A system for debugging a failure detected in a computer program, the system comprising:
a computer processor; and a checkpoint debugger module which, when executed by the computer processor, causes the computer processor to; receive, after completion of a previous checkpoint, a notification indicating that execution of the computer code on the first machine has failed; in response to receiving the notification after the previous checkpoint; trigger a processor of a second machine that is a mirrored version of the first machine relative to the previous checkpoint to initiate execution of a copy of the computer code on the second machine from a specific code execution point at which the checkpoint was initiated on the first machine; activate a debugger module to run concurrently with execution of a copy of the computer code on the second machine and collect debug data corresponding to execution of the computer code on the second machine from the previous checkpoint up to a failure of the computer code execution on the second machine; and store the debug data as debug data corresponding to execution failure of the computer code on the first machine. - View Dependent Claims (9, 10, 11, 12, 13, 14)
Specification