← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag