Patent ID: 8832682

Claim:
A computer-implemented method of trace collection for a virtual machine, the computer-implemented method comprising: executing a sequence of instructions in a first virtual machine and logging a first set of data comprising an event log related to nondeterministic events occurring during the execution of the sequence of instructions in the first virtual machine; executing the sequence of instructions in a second virtual machine from an initial state while replaying execution of the first virtual machine in the second virtual machine, wherein the second virtual machine is a different virtual machine from the first virtual machine; accessing the event log from the first set of data relating to nondeterministic events, the event log from the first set of data being used for replaying execution of the first virtual machine in the second virtual machine, the first set of data further comprising an execution point; making at least a portion of the event log from the first set of data available to the second virtual machine when the sequence reaches the execution point; collecting trace information in a second set of data from executing the sequence of instructions in the second virtual machine in response to expansion parameters while replaying execution of the first virtual machine in the second virtual machine, said trace information in said second set of data corresponding to characteristics of the replayed execution of the first virtual machine in accordance with the expansion parameters and said collecting of trace information being performed in a manner that does not preclude the accurate replaying of the execution of the first virtual machine in the second virtual machine; and storing the trace information in a trace file; in which: collecting trace information comprises receiving the expansion parameters from a user and collecting state information of the second virtual machine based on the expansion parameters; the state information of the second virtual machine comprises a register state and a memory state of the second virtual machine; and the expansion parameters comprise data indicating the register state and the memory state of the second virtual machine to be collected, wherein the second set of data comprises the trace information, the trace information comprises the state information of the second virtual machine, and the state information comprises the register state and the memory state of the second virtual machine.