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

Software profiler with runtime control to enable and disable instrumented executable

Assignee: International Business Machines Corp
•
Filing: 1997-03-19
•
Granted: 1999-09-28
•
Expires: 2017-03-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Disclosed is a system and method for a profiling system wherein the collection of profile data may be enabled and disabled during the execution of an instrumented computer program. The invention utilizes a dedicated bit in a condition register which is checked each time a block of instrumentation code is to be executed. If the bit is enabled, the instrumentation code is executed and profile data is collected. If the bit is not enabled, then the instrumentation block is skipped and not executed and no profile information is collected. The enabling and disabling of the bit in the condition register may be implemented in hardware, in software, or in a combination of the two.

Inventors

  • 👤 Robert Ralph Roediger
  • 👤 William Jon Schmidt

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 13:02
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612; G06F11/30; G06F11/34; G06F11/3466

Claims Analysis

Total Claims: 55
Claim 1
Independent Claim 48 words
An instrumented executable program comprising: a mechanism that causes profile information to be generated each time an instrumented code block is executed; and a mechanism that allows the generation of profile information to be enabled and disabled during runtime by a source external to said instrumented executable program.
Claim 2
Dependent Claim 48 words
An instrumented executable program comprising: a mechanism that causes profile information to be generated each time an instrumented code block is executed; and a mechanism that allows the generation of profile information to be enabled and disabled during runtime by a source external to said instrumented executable program.
Claim 3
Dependent Claim 20 words
The instrumented executable program of claim 1 wherein said source external to said instrumented executable program comprises a keyboard input.
Claim 4
Dependent Claim 22 words
The instrumented executable program of claim 1 wherein said source external to said instrumented executable program comprises a simultaneously running software program.
Claim 5
Dependent Claim 20 words
The instrumented executable program of claim 1 wherein said source external to said instrumented executable program comprises a hardware signal.
Claim 6
Independent Claim 112 words
An apparatus comprising: a processing unit; a memory system, said memory system being connected to said processing unit; and a compiler program stored in said computer system memory for execution on said central processing unit, said compiler program including: a code generator that converts a first instruction stream into a second instruction stream wherein said second instruction stream includes machine readable code; an instrumentation mechanism that inserts blocks of instrumentation code into said second instruction stream for profiling purposes; and an enabling mechanism that inserts enabling instructions into said second instruction stream wherein said enabling instructions include a mechanism that can enable and disable the execution of said blocks of instrumentation code.
Claim 7
Independent Claim 112 words
An apparatus comprising: a processing unit; a memory system, said memory system being connected to said processing unit; and a compiler program stored in said computer system memory for execution on said central processing unit, said compiler program including: a code generator that converts a first instruction stream into a second instruction stream wherein said second instruction stream includes machine readable code; an instrumentation mechanism that inserts blocks of instrumentation code into said second instruction stream for profiling purposes; and an enabling mechanism that inserts enabling instructions into said second instruction stream wherein said enabling instructions include a mechanism that can enable and disable the execution of said blocks of instrumentation code.
Claim 8
Dependent Claim 39 words
The apparatus of claim 5 wherein said enabling mechanism inserts at least one instruction that causes a dedicated portion of a register to be examined to determine if at least one of said instrumentation code blocks should be executed.
Claim 9
Dependent Claim 50 words
The apparatus of claim 6 wherein said at least one instruction that causes said dedicated portion of said register to be examined instructs said at least one of said instrumentation code blocks not to be executed if said dedicated portion of said register is not set to a predetermined value.
Claim 10
Dependent Claim 15 words
The apparatus of claim 6 wherein said dedicated portion of said register is a bit.
Claim 11
Dependent Claim 12 words
The apparatus of claim 6 wherein said register is a condition register.
Claim 12
Dependent Claim 30 words
The apparatus of claim 6 further comprising a profile control mechanism that sets a value in said dedicated portion of said register during the execution of said second instruction stream.
Claim 13
Dependent Claim 37 words
The apparatus of claim 5 wherein said enabling mechanism inserts at least one instruction that causes a dedicated memory space to be examined to determine if at least one of said instrumentation code blocks should be executed.
Claim 14
Dependent Claim 49 words
The apparatus of claim 11 wherein said at least one instruction that causes said dedicated memory space to be examined on said computer system instructs said at least one of said instrumentation code blocks not to be executed if said memory space is not set to a predetermined value.
Claim 15
Dependent Claim 29 words
The apparatus of claim 11 further comprising a profile control mechanism that sets a value in said dedicated memory space during the execution of said second stream of instructions.
Claim 16
Dependent Claim 99 words
A program product comprising: a recordable media; and a compiler recorded on said recordable media accessible by a computer system for execution on a central processing unit, said compiler having: a code generator that converts a first instruction stream into a second instruction stream wherein said second instruction stream includes machine readable code; an instrumentation mechanism that inserts instrumentation code into said second instruction stream for profiling purposes; and an enabling mechanism that inserts enabling instructions into said second instruction stream wherein said enabling instructions include a mechanism that can enable and disable the execution of said instrumentation code.
Claim 17
Dependent Claim 99 words
A program product comprising: a recordable media; and a compiler recorded on said recordable media accessible by a computer system for execution on a central processing unit, said compiler having: a code generator that converts a first instruction stream into a second instruction stream wherein said second instruction stream includes machine readable code; an instrumentation mechanism that inserts instrumentation code into said second instruction stream for profiling purposes; and an enabling mechanism that inserts enabling instructions into said second instruction stream wherein said enabling instructions include a mechanism that can enable and disable the execution of said instrumentation code.
Claim 18
Dependent Claim 35 words
The program product of claim 14 wherein said enabling mechanism inserts at least one instruction that causes a dedicated portion of a register to be examined to determine if said instrumentation code should be executed.
Claim 19
Dependent Claim 47 words
The program product of claim 15 wherein said at least one instruction that causes said dedicated register to be examined instructs at least one of said instrumentation code blocks not to be executed if said dedicated portion of said register is not set to a predetermined value.
Claim 20
Dependent Claim 16 words
The program product of claim 15 wherein said dedicated portion of said register is a bit.
Claim 21
Dependent Claim 13 words
The program product of claim 15 wherein said register is a condition register.
Claim 22
Dependent Claim 32 words
The program product of claim 15 further comprising a profile control mechanism that can set a value in said dedicated portion of said register during the execution of said second instruction stream.
Claim 23
Dependent Claim 33 words
The program product of claim 14 wherein said enabling mechanism inserts at least one instruction that causes a dedicated memory space to be examined to determine if said instrumentation code should be executed.
Claim 24
Dependent Claim 42 words
The program product of claim 14 wherein said instruction that causes said dedicated memory space to be examined instructs at least one of said instrumentation code blocks not to be executed if said memory space is not set to a predetermined value.
Claim 25
Dependent Claim 31 words
The program product of claim 14 further comprising a profile control mechanism that can set a value in said dedicated memory space during the execution of said second stream of instructions.
Claim 26
Dependent Claim 131 words
A program product comprising: a recordable media; and a compiler recorded on said recordable media accessible by a computer system for execution on a central processing unit, said compiler having: a code generator that converts a source code module into an object module wherein said object module includes machine readable code; a linker that reads in said object module and outputs a computer program; an instrumentation mechanism that inserts instrumentation code into said object module that causes profile information to be collected during the execution of said computer program; and an enabling mechanism that inserts at least one enabling instruction into said object module wherein said at least one enabling instruction includes a mechanism that allows said instrumentation code to be enabled and disabled during the execution of said computer program.
Claim 27
Dependent Claim 131 words
A program product comprising: a recordable media; and a compiler recorded on said recordable media accessible by a computer system for execution on a central processing unit, said compiler having: a code generator that converts a source code module into an object module wherein said object module includes machine readable code; a linker that reads in said object module and outputs a computer program; an instrumentation mechanism that inserts instrumentation code into said object module that causes profile information to be collected during the execution of said computer program; and an enabling mechanism that inserts at least one enabling instruction into said object module wherein said at least one enabling instruction includes a mechanism that allows said instrumentation code to be enabled and disabled during the execution of said computer program.
Claim 28
Dependent Claim 37 words
The program product of claim 23 wherein said enabling mechanism inserts said at least one enabling instruction that causes a dedicated portion of a register to be examined to determine if said instrumentation code should be executed.
Claim 29
Dependent Claim 45 words
The program product of claim 24 wherein said at least one instruction that causes said dedicated portion of said register to be examined instructs said instrumentation code not to be executed if said dedicated portion of said register is not set to a predetermined value.
Claim 30
Dependent Claim 16 words
The program product of claim 24 wherein said dedicated portion of said register is a bit.
Claim 31
Dependent Claim 13 words
The program product of claim 24 wherein said register is a condition register.
Claim 32
Dependent Claim 31 words
The program product of claim 24 further comprising a profile control mechanism that sets a value in said dedicated portion of said register during the execution of said second instruction stream.
Claim 33
Dependent Claim 35 words
The program product of claim 23 wherein said enabling mechanism inserts said at least one enabling instruction that causes a dedicated memory space to be examined to determine if said instrumentation code should be executed.
Claim 34
Dependent Claim 37 words
The program product of claim 29 wherein said instruction that causes said dedicated memory space to be examined instructs said instrumentation code not to be executed if said memory space is not set to a predetermined value.
Claim 35
Dependent Claim 30 words
The program product of claim 29 further comprising a profile control mechanism that sets a value in said dedicated memory space during the execution of said second stream of instructions.
Claim 36
Independent Claim 101 words
A method of controlling the generation of profile information during the execution of a computer program that has a plurality of instrumentation code blocks embedded therein, said method including the steps of: beginning the execution of said computer program on a central processing unit; causing at least one bit in a condition register to be set to a predetermined value; checking said at least one bit prior to the execution of each of said instrumentation code blocks; executing said instrumentation code block if said bit is enabled; and omitting the execution of said instrumentation code block if said bit is disabled.
Claim 37
Independent Claim 101 words
A method of controlling the generation of profile information during the execution of a computer program that has a plurality of instrumentation code blocks embedded therein, said method including the steps of: beginning the execution of said computer program on a central processing unit; causing at least one bit in a condition register to be set to a predetermined value; checking said at least one bit prior to the execution of each of said instrumentation code blocks; executing said instrumentation code block if said bit is enabled; and omitting the execution of said instrumentation code block if said bit is disabled.
Claim 38
Dependent Claim 29 words
The method of claim 32 wherein said step of omitting the execution of said instrumentation code block if said bit is disabled is accomplished with a branch false instruction.
Claim 39
Dependent Claim 31 words
The method of claim 32 wherein said step of causing at least one bit in said condition register to be set to said predetermined value is accomplished with a keyboard command.
Claim 40
Dependent Claim 30 words
The method of claim 32 wherein said step of causing at least one bit in said condition register to be set to said predetermined value is accomplished by software control.
Claim 41
Independent Claim 144 words
A method of controlling the generation of profiling information during the execution of a computer program wherein said computer program includes instrumentation code blocks for collecting profile information, said method including the steps of: compiling a source code module to generate an object module containing machine executable instructions; inserting instrumentation code blocks into said object module to generate profile information; inserting at least one enabling instruction at the beginning of each instrumentation code block to check if an enabling bit is set; creating said computer program from said object module; executing said computer program; causing said enabling bit to be set to a predetermined value; checking said enabling bit prior to the execution of each instrumentation code block; executing said instrumentation code block if said enabling bit is enabled; and omitting the execution of said instrumentation code block if said enabling bit is disabled.
Claim 42
Independent Claim 144 words
A method of controlling the generation of profiling information during the execution of a computer program wherein said computer program includes instrumentation code blocks for collecting profile information, said method including the steps of: compiling a source code module to generate an object module containing machine executable instructions; inserting instrumentation code blocks into said object module to generate profile information; inserting at least one enabling instruction at the beginning of each instrumentation code block to check if an enabling bit is set; creating said computer program from said object module; executing said computer program; causing said enabling bit to be set to a predetermined value; checking said enabling bit prior to the execution of each instrumentation code block; executing said instrumentation code block if said enabling bit is enabled; and omitting the execution of said instrumentation code block if said enabling bit is disabled.
Claim 43
Dependent Claim 17 words
The method of claim 36 wherein said at least one enabling instruction includes a branch false instruction.
Claim 44
Dependent Claim 27 words
The method of claim 36 wherein said step of causing said enabling bit to be set to a predetermined value is done from a computer's command line.
Claim 45
Dependent Claim 26 words
The method of claim 36 wherein said step of causing said enabling bit to be set to a predetermined value is caused by a software program.
Claim 46
Dependent Claim 14 words
The method of claim 36 wherein said enabling bit is in a condition register.
Claim 47
Dependent Claim 73 words
A program product comprising: a recordable media; and an instrumentation program recorded on said recordable media accessible by a computer system for execution on a central processing unit, said instrumentation program having a mechanism that inserts instrumentation code into a stream of machine readable instructions wherein said instrumentation code includes at least one enabling instruction that allows said instrumentation code to be enabled and disabled during the execution of said machine readable instructions.
Claim 48
Dependent Claim 73 words
A program product comprising: a recordable media; and an instrumentation program recorded on said recordable media accessible by a computer system for execution on a central processing unit, said instrumentation program having a mechanism that inserts instrumentation code into a stream of machine readable instructions wherein said instrumentation code includes at least one enabling instruction that allows said instrumentation code to be enabled and disabled during the execution of said machine readable instructions.
Claim 49
Dependent Claim 29 words
The program product of claim 41 further comprising a profile control mechanism that enables and disables the execution of said instrumentation code during the execution of said machine-readable instructions.
Claim 50
Dependent Claim 32 words
The program product of claim 41 wherein said at least one enabling instruction causes a dedicated portion of a register to be examined to determine if said instrumentation code should be executed.
Claim 51
Dependent Claim 46 words
The program product of claim 43 wherein said at least one enabling instruction that causes said dedicated portion of said register to be examined instructs said instrumentation code not to be executed if said dedicated portion of said register is not set to a predetermined value.
Claim 52
Dependent Claim 16 words
The program product of claim 43 wherein said dedicated portion of a register is a bit.
Claim 53
Dependent Claim 13 words
The program product of claim 43 wherein said register is a condition register.
Claim 54
Dependent Claim 30 words
The program product of claim 41 wherein said at least one enabling instruction causes a dedicated memory space to be examined to determine if said instrumentation code should be executed.
Claim 55
Dependent Claim 32 words
The program product of claim 47 wherein said at least one enabling instruction causes said instrumentation code not to be executed if said memory space is not set to a predetermined value.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-09-27 2003-03-29 2003-09-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-09-27 2007-03-29 2007-09-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-09-27 2011-03-29 2011-09-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag