Software profiler with runtime control to enable and disable instrumented executable
First Claim
Patent Images
1. 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.
1 Assignment
0 Petitions
Accused Products
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.
178 Citations
48 Claims
-
1. 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. - View Dependent Claims (2, 3, 4)
-
-
5. 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. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. 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. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. 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. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. 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. - View Dependent Claims (33, 34, 35)
-
-
36. 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. - View Dependent Claims (37, 38, 39, 40)
-
-
41. 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. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48)
-
Specification