Method and apparatus for selective replay of computer programs
First Claim
1. A method for monitoring an execution of a computer program so that a portion of the execution may be replayed, the method comprising the steps of:
- (A) segmenting the computer program into a plurality of segments;
(B) executing the computer program including the plurality of segments;
(C) during execution of the computer program, monitoring access of a memory location by the computer program to determine whether an accessed value of the memory location is a value to be stored; and
(D) at an end of each of the plurality of segments executed during execution, storing the accessed value when step (C) determines that the accessed value includes a value to be stored.
1 Assignment
0 Petitions
Accused Products
Abstract
A user can selectively replay portions of a computer program execution, so that the entire program need not be run again to support further test and debug. A run-time instrumented version of the program is created by inserting special instructions into the original program. The run-time instrumented version is executed to create trace files of memory accesses and system calls, as well as identification of interrupts. During execution of the run-time instrumented version, a state of each accessed memory location is monitored and updated to determine which memory accesses should be traced and when. This monitoring and updating is performed in a manner which minimizes interference with the execution. A user then may select a desired portion of the original computer program for replay and, in response, appropriate data is stored in corresponding memory locations so that the desired portion of the program may be replayed accurately.
-
Citations
18 Claims
-
1. A method for monitoring an execution of a computer program so that a portion of the execution may be replayed, the method comprising the steps of:
-
(A) segmenting the computer program into a plurality of segments; (B) executing the computer program including the plurality of segments; (C) during execution of the computer program, monitoring access of a memory location by the computer program to determine whether an accessed value of the memory location is a value to be stored; and (D) at an end of each of the plurality of segments executed during execution, storing the accessed value when step (C) determines that the accessed value includes a value to be stored. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for monitoring an execution of a computer program so that a portion of the execution may be replayed, the apparatus comprising:
-
means for segmenting the computer program into a plurality of segments; means for executing the computer program including the plurality of segments; means for monitoring access of a memory location by the computer program, during execution of the computer program, to determine whether an accessed value of the memory location includes a value to be stored; and means for storing the accessed value in response to the means for monitoring determining that the accessed value includes a value to be stored, at an end of each of the plurality of segments executed during execution. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification