← Back to Patent Explorer
US5050168A Expired / Lapsed US ⏱️ 0.0 years remaining

Test coverage analyzer

Assignee: Individual
•
Filing: 1989-12-29
•
Granted: 1991-09-17
•
Expires: 2009-12-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A test coverage analyzer (computer program) for monitoring the execution of a target program to determine which target program instructions have been executed. The analyzer first executes a portion of the target program in step mode, in which target program instruction are executed one at a time. In step mode, the analyzer maintains data indicating which target program instructions have been executed. When a branch is encountered, the analyzer inserts breakpoints in the target program at the first instructions of the branches that are not taken. When the analyzer determines that the target program instruction being executed has already been executed, it switches to run mode, so that the target program begins executing at its normal running speed. This continues until one of the inserted breakpoints is encountered, at which point the analyzer removes the breakpoint and switches back to step mode.

Inventors

  • 👤 Timothy L. Paterson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 10:17
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3668; G06F11/3672; G06F11/3676; G06F11/3698

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 188 words
A method for monitoring the execution of a target program comprising a series of instructions to determine which instructions have been executed, the target program being executable on a computer in a run mode in which instructions are executed without interruption, and in a step mode in which instructions are executed one at a time, the method comprising the computer performed steps of: executing a portion of the target program in step mode; while executing the target program in step mode, maintaining a table of target program instructions that have been executed; when a branch instruction that transfers control to a first branch path is executed in step mode, inserting one or more breakpoints into the target program such that upon the next execution of the branch instruction, a breakpoint will be encountered at least for the case in which said next execution transfers control to a second branch path different from the first branch path; switching to run mode when an instruction in said table is encountered while executing in step mode; and switching to step mode when a breakpoint is encountered while executing in run mode.
Claim 2
Independent Claim 188 words
A method for monitoring the execution of a target program comprising a series of instructions to determine which instructions have been executed, the target program being executable on a computer in a run mode in which instructions are executed without interruption, and in a step mode in which instructions are executed one at a time, the method comprising the computer performed steps of: executing a portion of the target program in step mode; while executing the target program in step mode, maintaining a table of target program instructions that have been executed; when a branch instruction that transfers control to a first branch path is executed in step mode, inserting one or more breakpoints into the target program such that upon the next execution of the branch instruction, a breakpoint will be encountered at least for the case in which said next execution transfers control to a second branch path different from the first branch path; switching to run mode when an instruction in said table is encountered while executing in step mode; and switching to step mode when a breakpoint is encountered while executing in run mode.
Claim 3
Dependent Claim 24 words
The method of claim 1, comprising the further step of maintaining a breakpoint table indicating breakpoints that have been inserted into the target program.
Claim 4
Dependent Claim 29 words
The method of claim 1, comprising the further step of inserting one or more breakpoints into the target program prior to the commencement of execution of the target program.
Claim 5
Dependent Claim 44 words
The method of claim 1, wherein the step of maintaining a table indicating which instructions have been executed comprises maintaining a range table comprising one or more range records, each range record indicating a range of one or more instructions that have been executed.
Claim 6
Dependent Claim 23 words
The method of claim 4, comprising the further step of creating one or more range records prior to execution of the target program.
Claim 7
Dependent Claim 40 words
The method of claim 1, wherein when the branch instruction is capable of transferring control to one of two or more predetermined branch paths, the inserting step comprises inserting breakpoints in each branch path other than the first branch path.
Claim 8
Dependent Claim 33 words
The method of claim 6, wherein each branch path includes a first instruction, and wherein the breakpoints are inserted at the first instruction of each branch path other than the first branch path.
Claim 9
Dependent Claim 18 words
The method of claim 6, comprising the further step of removing a breakpoint when the breakpoint is encountered.
Claim 10
Dependent Claim 36 words
The method of claim 6, wherein when the branch instruction comprises an indirect jump instruction that transfers control to a variable target program address, the inserting step comprises inserting the breakpoint at the indirect jump instruction.
Claim 11
Dependent Claim 43 words
The method of claim 9, comprising the further step of, when a breakpoint is encountered, removing the breakpoint if the breakpoint was inserted in a predetermined branch path, but not removing the breakpoint if the breakpoint was inserted at an indirect jump instruction.
Claim 12
Dependent Claim 40 words
The method of claim 10, comprising the further step of maintaining a breakpoint table indicating each inserted breakpoint and, for each breakpoint, further indicating whether the breakpoint was inserted in a predetermined branch path or at an indirect jump instruction.
Claim 13
Dependent Claim 17 words
The method of claim 1, wherein the inserting step comprises inserting the breakpoint at the branch instruction.
Claim 14
Dependent Claim 31 words
The method of claim 12, wherein the breakpoint is inserted at the branch instruction when the branch instruction is an indirect jump that transfers control to a variable target program address.
Claim 15
Dependent Claim 34 words
The method of claim 13, comprising the further step of maintaining a breakpoint table indicating each inserted breakpoint and, for each breakpoint, further indicating that the breakpoint was inserted at an indirect jump instruction.
Claim 16
Dependent Claim 55 words
The method of claim 1, wherein when the branch instruction is capable of transferring control to one of two or more predetermined branch paths, the inserting step comprises inserting breakpoints either in each branch path other than the first branch path, or at the branch instruction, depending upon the number of said predetermined branch paths.
Claim 17
Dependent Claim 41 words
The method of claim 15, comprising the further step of, when a breakpoint is encountered, removing the breakpoint if the breakpoint was inserted in a branch path, but not removing the breakpoint if the breakpoint was inserted at a branch instruction.
Claim 18
Independent Claim 195 words
An apparatus for monitoring the execution of a target program comprising a series of instructions to determine which instructions have been executed, the target program being executable on a computer in a run mode in which instructions are executed without interruption, and in a step mode in which instructions are executed one at a time, the apparatus comprising: means for executing a portion of the target program in step mode; means operable while executing the target program in step mode for maintaining a table of target program instructions that have been executed; means operable when a branch instruction that transfers control to a first branch path is executed in step mode for inserting one or more breakpoints into the target program such that upon the next execution of the branch instruction, a breakpoint will be encountered at least for the case in which said next execution transfers control to a second branch path different from the first branch path; means for switching to run mode when an instruction in said table is encountered while executing in step mode; and means for switching to step mode when a breakpoint is encountered while executing in run mode.
Claim 19
Independent Claim 195 words
An apparatus for monitoring the execution of a target program comprising a series of instructions to determine which instructions have been executed, the target program being executable on a computer in a run mode in which instructions are executed without interruption, and in a step mode in which instructions are executed one at a time, the apparatus comprising: means for executing a portion of the target program in step mode; means operable while executing the target program in step mode for maintaining a table of target program instructions that have been executed; means operable when a branch instruction that transfers control to a first branch path is executed in step mode for inserting one or more breakpoints into the target program such that upon the next execution of the branch instruction, a breakpoint will be encountered at least for the case in which said next execution transfers control to a second branch path different from the first branch path; means for switching to run mode when an instruction in said table is encountered while executing in step mode; and means for switching to step mode when a breakpoint is encountered while executing in run mode.
Claim 20
Dependent Claim 43 words
The apparatus of claim 17, wherein when the branch instruction is capable of transferring control to one of two or more predetermined branch paths, the means for inserting comprises means for inserting breakpoints in each branch path other than the first branch path.
Claim 21
Dependent Claim 20 words
The apparatus of claim 17, wherein the means for inserting comprises means for inserting the breakpoint at the branch instruction.

References Cited (Backward Citations)

US4635193A Cited
US4853851A Cited
US4866665A Cited
US4910663A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1994-09-16 1995-03-18 1995-09-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1998-09-16 1999-03-18 1999-09-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2002-09-16 2003-03-18 2003-09-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag