Claims Analysis
Total Claims: 34
Claim 1
Independent Claim
108 words
A method of instrumenting an initial byte code computer program, comprising: (a) examining the initial byte code to determine an identifier associated with at least one block of code included in the initial byte code; (b) selecting portions of the initial byte code for instrumentation; and (c) instrumenting, while loading the initial byte code, the portions by supplementing the initial byte code with additional byte code for instrumentation that facilitates runtime data gathering to monitor execution of the computer program, wherein a portion of the additional byte code uses the identifier to instrument portions of the initial byte code associated with said at least one block of code.
Claim 2
Independent Claim
108 words
A method of instrumenting an initial byte code computer program, comprising: (a) examining the initial byte code to determine an identifier associated with at least one block of code included in the initial byte code; (b) selecting portions of the initial byte code for instrumentation; and (c) instrumenting, while loading the initial byte code, the portions by supplementing the initial byte code with additional byte code for instrumentation that facilitates runtime data gathering to monitor execution of the computer program, wherein a portion of the additional byte code uses the identifier to instrument portions of the initial byte code associated with said at least one block of code.
Claim 3
Dependent Claim
38 words
A method according to claim 1 , wherein selecting the portions includes choosing portions of the byte code corresponding to at least one of: method entry, method exit, a throw, a method call, and a new line number.
Claim 4
Dependent Claim
36 words
A method according to claim 2 , wherein instrumenting a portion of the byte code corresponding to a method call includes instrumenting a local line number of source code corresponding to the byte code being instrumented.
Claim 5
Dependent Claim
27 words
A method, according to claim 1 , wherein instrumenting the portions includes adding calls to instrumentation runtime functions that pass parameters indicative of the portions being instrumented.
Claim 6
Dependent Claim
31 words
A method, according to claim 4 , wherein at least one of the parameters that is passed includes a line number of the source code corresponding to the portion being instrumented.
Claim 7
Dependent Claim
29 words
A method, according to claim 4 , wherein at least one of the parameters that is passed includes a thispointer for the method corresponding to the portion being instrumented.
Claim 8
Dependent Claim
35 words
A method, according to claim 4 , wherein at least one of the parameters that is passed corresponds to at least one method parameter provided to a method containing byte code that is being instrumented.
Claim 9
Dependent Claim
41 words
A method, according to claim 7 , wherein data indicative of the at least one method parameter is passed in a message buffer from an instrumentation runtime function to at least one viewer routine that displays the data to a user.
Claim 10
Dependent Claim
19 words
A method, according to claim 8 , wherein the message buffer includes scalar data, array data, and object data.
Claim 11
Dependent Claim
28 words
A method, according to claim 9 , further comprising: (d) placing an object header in the message buffer; and (e) placing an array header in the message buffer.
Claim 12
Dependent Claim
18 words
A method, according to claim 10 , further comprising: (f) limiting the message buffer to a predetermined size.
Claim 13
Dependent Claim
19 words
A method, according to claim 4 , wherein data indicative of the parameters are stored in a message buffer.
Claim 14
Dependent Claim
28 words
A method, according to claim 12 , wherein data from the message buffer is passed to at least one viewer routine that displays the data to a user.
Claim 15
Dependent Claim
23 words
A method, according to claim 1 , further comprising: (d) instrumenting an end of a method to provide instrumentation for handling an abort.
Claim 16
Dependent Claim
32 words
A method according to claim 1 , further comprising: (d) instrumenting a call to a native function by adding a byte code wrapper to the native function and then instrumenting the wrapper.
Claim 17
Dependent Claim
20 words
A method, according to claim 15 , wherein the wrapper includes byte code corresponding to method entry and exit portions.
Claim 18
Dependent Claim
34 words
A method, according to claim 1 , further comprising: (d) instrumenting a call to a native function by providing an native assembly language thunk that captures data passed to and from the native function.
Claim 19
Dependent Claim
26 words
A method, according to claim 17 , further comprising: (e) hooking the assembly language thunk between a virtual machine and the call to the native function.
Claim 20
Dependent Claim
24 words
A method, according to claim 18 , wherein hooking the assembly language thunk includes intercepting a call that provides an address for a procedure.
Claim 21
Dependent Claim
20 words
A method, according to claim 1 , further comprising: (d) providing a routine to pass data via a message stream.
Claim 22
Dependent Claim
22 words
A method, according to claim 20 , further comprising: (e) providing a data storage to store data provided via the message stream.
Claim 23
Dependent Claim
32 words
A method, according to claim 20 , further comprising: (e) providing a viewer to allow viewing at least a subset of data from the message stream as the data is being generated.
Claim 24
Independent Claim
154 words
A method of instrumenting a computer program, comprising: (a) examining an initial byte code representation of the program to determine an identifier associated with at least one block of code included in the initial byte code; (b) creating a program counter mapping table corresponding to the byte code representation; (c) selecting portions of the initial byte code representation for instrumenting using the program counter mapping table; (d) instrumenting, while loading the initial byte code representation, the portions by supplementing the initial byte code with calls to instrumentation runtime functions at at least some of the portions to facilitate runtime data gathering for monitoring execution of the computer program, wherein a portion of the additional byte code uses the identifier to instrument portions of the initial byte code representation associated with said at least one block of code; and (e) modifying the program counter mapping table according to original byte code and supplemented byte code.
Claim 25
Independent Claim
154 words
A method of instrumenting a computer program, comprising: (a) examining an initial byte code representation of the program to determine an identifier associated with at least one block of code included in the initial byte code; (b) creating a program counter mapping table corresponding to the byte code representation; (c) selecting portions of the initial byte code representation for instrumenting using the program counter mapping table; (d) instrumenting, while loading the initial byte code representation, the portions by supplementing the initial byte code with calls to instrumentation runtime functions at at least some of the portions to facilitate runtime data gathering for monitoring execution of the computer program, wherein a portion of the additional byte code uses the identifier to instrument portions of the initial byte code representation associated with said at least one block of code; and (e) modifying the program counter mapping table according to original byte code and supplemented byte code.
Claim 26
Dependent Claim
39 words
A method according to claim 23 , wherein selecting the portions includes choosing portions of the initial intermediate representation corresponding to at least one of: method entry, method exit, a throw, a method call, and a new line number.
Claim 27
Dependent Claim
27 words
A method, according to claim 23 , wherein instrumenting the portions includes adding calls to instrumentation runtime functions that pass parameters indicative of the portions being instrumented.
Claim 28
Dependent Claim
32 words
A method according to claim 23 , further comprising: (f) instrumenting a call to a native function by adding a byte code wrapper to the native function and then instrumenting the wrapper.
Claim 29
Dependent Claim
21 words
A method, according to claim 26 , wherein the wrapper includes byte code instrumentation corresponding to method entry and exit portions.
Claim 30
Dependent Claim
34 words
A method, according to claim 23 , further comprising: (f) instrumenting a call to a native function by providing an native assembly language thunk that captures data passed to and from the native function.
Claim 31
Dependent Claim
26 words
A method, according to claim 28 , further comprising: (g) hooking the assembly language thunk between a virtual machine and the call to the native function.
Claim 32
Dependent Claim
24 words
A method, according to claim 29 , wherein hooking the assembly language thunk includes intercepting a call that provides an address for a procedure.
Claim 33
Dependent Claim
34 words
A method, according to claim 23 , further comprising: (f) following examining an initial byte code representation of the program, registering each of the methods and corresponding line numbers thereof with runtime instrumentation code.
Claim 34
Dependent Claim
29 words
A method, according to claim 31 , wherein registering each of the methods and corresponding line numbers thereof facilitates determining the source code being executed during run time debugging.