US4910663A
Expired / Lapsed
US
⏱️ 0.0 years remaining
System for measuring program execution by replacing an executable instruction with interrupt causing instruction
Assignee: Hewlett Packard Development Co LP
•
Filing: 1987-07-10
•
Granted: 1990-03-20
•
Expires: 2007-07-10
Abstract
Abstract A computer program measures the execution of machine code instructions in an executing program. A copy of the measured program is made and selected machine instructions are replaced by interrupt-causing breakpoint instructions. As each breakpoint instruction is executed, the breakpoint is replaced by the actual instruction, and a bit map is updated to indicate execution of the measured instruction. Execution resumes with the actual instruction.
Inventors
- 👤 Bruce W. Bailey
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-27 15:08
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3668; G06F11/3672; G06F11/3676; G06F11/362; G06F11/3644
Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
211 words
In a computer system having a memory for storing a computer program and a processor for executing the stored computer program, said computer system having at least one an interrupt-causing instruction and the computer program comprising a first set of executable instructions stored in said memory, a method for determining which ones of a subset of said first set of executable instructions are not executed when the program is executed, comprising the steps of: making a program copy from said stored computer program, said program copy comprising a second set of executable instructions identical to said first set of executable instructions; storing said program copy in said memory; modifying the stored program copy by replacing each one of a subset of said second set of executable instructions in said program copy with an interrupt-causing instruction; initiating the execution of the modified program copy; in response to the execution of each one of the interrupt-causing instructions in the program copy, performing the steps of: locating in said first set of executable instructions an instruction identical to the instruction replaced by the executed one of the interrupt-causing instructions; restoring the replaced instruction by writing said located instruction in place of the executed interrupt-causing instruction in said program copy; and executing the restored instruction.
Claim 2
Dependent Claim
211 words
In a computer system having a memory for storing a computer program and a processor for executing the stored computer program, said computer system having at least one an interrupt-causing instruction and the computer program comprising a first set of executable instructions stored in said memory, a method for determining which ones of a subset of said first set of executable instructions are not executed when the program is executed, comprising the steps of: making a program copy from said stored computer program, said program copy comprising a second set of executable instructions identical to said first set of executable instructions; storing said program copy in said memory; modifying the stored program copy by replacing each one of a subset of said second set of executable instructions in said program copy with an interrupt-causing instruction; initiating the execution of the modified program copy; in response to the execution of each one of the interrupt-causing instructions in the program copy, performing the steps of: locating in said first set of executable instructions an instruction identical to the instruction replaced by the executed one of the interrupt-causing instructions; restoring the replaced instruction by writing said located instruction in place of the executed interrupt-causing instruction in said program copy; and executing the restored instruction.
Claim 3
Dependent Claim
13 words
The method of claim 1 wherein the interrupt-causing instruction is a breakpoint instruction.
Claim 4
Dependent Claim
13 words
The method of claim 1 wherein the interrupt-causing instruction is an invalid instruction.
Claim 5
Dependent Claim
24 words
The method of claim 1 further comprising the step of reporting which ones of said selected subset of instructions have been restored and executed.
Claim 6
Dependent Claim
25 words
The method of claim 1 further comprising the step of reporting which ones of the selected subset of instructions have not been restored and executed.
Claim 7
Dependent Claim
31 words
The method of claim 1 further comprising the step of, in response to the execution of a interrupt-causing instruction, indicating that the instruction replaced by the interrupt-causing instruction will be executed.
Claim 8
Dependent Claim
23 words
The method of claim 6 wherein said indicating step comprises storing in said computer system an indication that the interrupt-causing instruction has executed.
Claim 9
Dependent Claim
18 words
The method of claim 7 further comprising the step of reporting that each restored instruction has been executed.
Claim 10
Dependent Claim
188 words
In a computer system having a memory for storing a computer program and a processor for executing the stored computer program, said computer system having at least one an interrupt-causing instruction and the computer program comprising a set of executable instructions, a method for determining which ones of a selected subset of the set of executable instructions are executed, comprising the steps of: storing a first copy of the computer program in the memory; storing a second copy of the computer program in the memory; selecting a subset of the set of instructions from the second copy of the computer program; modifying the second copy of the program by replacing each of the instructions in the selected subset with an interrupt-causing instruction; executing the modified second copy of the program; in response to the execution of each one of the interrupt-causing instructions, performing the steps of: identifying the instruction replaced by the executed interrupt-causing instruction; indicating that the identified instruction will be executed; restoring the replaced instruction by copying the identified instruction from said first copy of the program over the interrupt-causing instruction; and executing the restored instruction.
Claim 11
Dependent Claim
188 words
In a computer system having a memory for storing a computer program and a processor for executing the stored computer program, said computer system having at least one an interrupt-causing instruction and the computer program comprising a set of executable instructions, a method for determining which ones of a selected subset of the set of executable instructions are executed, comprising the steps of: storing a first copy of the computer program in the memory; storing a second copy of the computer program in the memory; selecting a subset of the set of instructions from the second copy of the computer program; modifying the second copy of the program by replacing each of the instructions in the selected subset with an interrupt-causing instruction; executing the modified second copy of the program; in response to the execution of each one of the interrupt-causing instructions, performing the steps of: identifying the instruction replaced by the executed interrupt-causing instruction; indicating that the identified instruction will be executed; restoring the replaced instruction by copying the identified instruction from said first copy of the program over the interrupt-causing instruction; and executing the restored instruction.
Claim 12
Dependent Claim
24 words
The method of claim 9 wherein said identifying step comprises the step of ascertaining the location in the program of the executed interrupt-causing instruction.
Claim 13
Dependent Claim
29 words
The method of claim 10 wherein said indicating step comprises the step of storing a predetermined value in a storage location corresponding to the ascertained location in the program.
Claim 14
Dependent Claim
13 words
The method of claim 9 wherein the interrupt-causing instruction is a breakpoint instruction.
Claim 15
Dependent Claim
13 words
The method of claim 9 wherein the interrupt-causing instruction is an invalid instruction.
Claim 16
Dependent Claim
252 words
In a computer system having a memory for storing a computer program and a processor for executing the stored computer program, said computer system having at least one an interrupt-causing instruction and the computer program comprising a first set of instructions, a method for determining which ones of a selected subset of said first set of instructions are executed, comprising the steps of: making and storing a second copy of the computer program, said second copy comprising a second set of instructions identical to said first set of instructions; selecting a subset of the second set of instructions; modifying the second copy of the computer program by replacing each of the selected instructions in the second copy of the computer program with an interrupt-causing instruction; initializing a map, said map comprising a set of storage locations, each of said storage locations corresponding to one of the interrupt-causing instructions; initiating the execution of the modified second copy of said computer program; in response to each interrupt during execution of the modified second copy of the computer program, performing the steps of: ascertaining the location in the program of the interrupt-causing instruction; storing a predetermined value in the map storage location corresponding to the interrupt-causing instruction to indicate that the instruction replaced by the interrupt-causing instruction will be executed; restoring the replaced instruction by copying the instruction from the ascertained location in the first copy of the program to the ascertained location in the second copy of the program; and executing the restored instruction.
Claim 17
Dependent Claim
252 words
In a computer system having a memory for storing a computer program and a processor for executing the stored computer program, said computer system having at least one an interrupt-causing instruction and the computer program comprising a first set of instructions, a method for determining which ones of a selected subset of said first set of instructions are executed, comprising the steps of: making and storing a second copy of the computer program, said second copy comprising a second set of instructions identical to said first set of instructions; selecting a subset of the second set of instructions; modifying the second copy of the computer program by replacing each of the selected instructions in the second copy of the computer program with an interrupt-causing instruction; initializing a map, said map comprising a set of storage locations, each of said storage locations corresponding to one of the interrupt-causing instructions; initiating the execution of the modified second copy of said computer program; in response to each interrupt during execution of the modified second copy of the computer program, performing the steps of: ascertaining the location in the program of the interrupt-causing instruction; storing a predetermined value in the map storage location corresponding to the interrupt-causing instruction to indicate that the instruction replaced by the interrupt-causing instruction will be executed; restoring the replaced instruction by copying the instruction from the ascertained location in the first copy of the program to the ascertained location in the second copy of the program; and executing the restored instruction.
Claim 18
Dependent Claim
168 words
A computer system having at least one an interrupt-causing instruction for executing a stored program and analyzing program coverage comprising: memory means for storing programs and data; a first copy of the program stored in said memory means, the first copy comprising a first set of executable instructions; a second copy of the program stored in said memory means, the second copy comprising a second set of executable instructions identical to said first set of executable instructions; processing means coupled to said memory means for replacing each one of a subset of the second set of executable instructions with an interrupt-causing instruction and then executing the second copy of the program and, in response to the execution of an interrupt-causing instruction, restoring the instruction replaced by said interrupt-causing instruction by copying the replaced instruction from the first program to the location of the executed interrupt-causing instruction and executing the restored instruction; and reporting means for reporting which ones of the subset of instructions have been restored and executed.
Claim 19
Dependent Claim
168 words
A computer system having at least one an interrupt-causing instruction for executing a stored program and analyzing program coverage comprising: memory means for storing programs and data; a first copy of the program stored in said memory means, the first copy comprising a first set of executable instructions; a second copy of the program stored in said memory means, the second copy comprising a second set of executable instructions identical to said first set of executable instructions; processing means coupled to said memory means for replacing each one of a subset of the second set of executable instructions with an interrupt-causing instruction and then executing the second copy of the program and, in response to the execution of an interrupt-causing instruction, restoring the instruction replaced by said interrupt-causing instruction by copying the replaced instruction from the first program to the location of the executed interrupt-causing instruction and executing the restored instruction; and reporting means for reporting which ones of the subset of instructions have been restored and executed.
Claim 20
Dependent Claim
13 words
The system of claim 15 wherein the interrupt-causing instruction is a breakpoint instruction.
Claim 21
Dependent Claim
13 words
The system of claim 15 wherein the interrupt-causing instruction is an invalid instruction.
References Cited (Backward Citations)
US3509541A
Cited
US3551659A
Cited
US3707725A
Cited
US4205370A
Cited
US4080650A
Cited
US4231106A
Cited
JPS5750058A
Cited
US4571677A
Cited
EP0087064A2
Cited
US4511961A
Cited
US4462077A
Cited
US4601008A
Cited
US4635193A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1993-03-19 | 1993-09-18 | 1994-03-20 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1997-03-19 | 1997-09-18 | 1998-03-20 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2001-03-19 | 2001-09-18 | 2002-03-20 | $7700.00 | Window Closed / Lapsed |