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

Collection of timing and coverage data through a debugging interface

Assignee: Borland Software Corp
•
Filing: 2000-08-22
•
Granted: 2004-04-13
•
Expires: 2020-08-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Techniques for gathering execution information about an application, such as a distributed application, are described. Key communication points in cross execution context calls, such as remote procedure calls, are determined and control is transferred to instrumentation routines to insert and extract execution information. Outgoing remote procedure calls are intercepted on a client that inserts call origin information into the request sent to a server system. Messages received by a server are intercepted. The server system extracts the call origin information and additionally inserts other information in a response sent to the client system upon completion of a remote procedure call. In turn, the client system intercepts the response and extracts other performance information. On each client and server system, information is gathered by a reader and forwarded to a local collector. This information may be further forwarded to and correlated by a client collector from one or more remote server collectors in accordance with processes of each distributed application. Various statistics for a distributed application may be determined in addition to per process statistics. These include wire time, code coverage as related to the distributed application, remote procedure call tracing, and performance profiling. A variety of techniques are described to obtain program execution information in connection with an executing application including instrumentation techniques and use of a debugger interface to obtain profiling and other execution information. All of the program execution data may be collected and correlated at one or more particular points using other techniques described to represent coordinated application monitoring.

Inventors

  • 👤 Farokh Morshed
  • 👤 Robert Meagher

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 14:42
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612; G06F11/362; G06F11/3636; G06F8/00; G06F8/40; G06F8/41; G06F9/00; G06F9/06; G06F9/44; G06F9/455; G06F9/45504; G06F9/45516; G06F11/30; G06F11/34; G06F11/3466; G06F2201/00; G06F2201/865

Claims Analysis

Total Claims: 52
Claim 1
Independent Claim 120 words
A method for monitoring execution of an application comprising: reporting debugging information to a program monitor using an application debugging interface, said program monitor executing within address space of said application; gathering program execution information using the debugging information to monitor execution of the application, wherein said debugging information includes a character offset position associated with a source file; building a line table associated with the source file, the line table including beginning and ending character offsets corresponding to a source line of the source file; and determining a source line number for said character offset position;, wherein said character offset position is included in the debugging information and the source line number is included in the program execution information.
Claim 2
Independent Claim 120 words
A method for monitoring execution of an application comprising: reporting debugging information to a program monitor using an application debugging interface, said program monitor executing within address space of said application; gathering program execution information using the debugging information to monitor execution of the application, wherein said debugging information includes a character offset position associated with a source file; building a line table associated with the source file, the line table including beginning and ending character offsets corresponding to a source line of the source file; and determining a source line number for said character offset position;, wherein said character offset position is included in the debugging information and the source line number is included in the program execution information.
Claim 3
Dependent Claim 23 words
The method of claim 1 further comprising: deriving a portion of the program execution information from data reported using the application debugging interface.
Claim 4
Dependent Claim 19 words
The method of claim 1 , wherein said application debugging interface is used in connection with debugging the application.
Claim 5
Dependent Claim 23 words
The method of claim 1 , wherein the program execution information includes one of: performance profiling data, code coverage data, program tracing data.
Claim 6
Dependent Claim 52 words
The method of claim 4 , wherein the program execution information includes cross execution context call information from a first execution context call to a second execution context call, said first execution context call being associated with a calling function and said second execution context call being associated with a called function.
Claim 7
Dependent Claim 13 words
The method of claim 5 , wherein the application is a distributed application.
Claim 8
Dependent Claim 17 words
The method of claim 6 , wherein the cross execution context call is a remote procedure call.
Claim 9
Dependent Claim 36 words
The method of claim 7 , further comprising: executing the calling function in a client system; executing the called function in a server system; and correlating information about the remote procedure call at the client system.
Claim 10
Dependent Claim 28 words
The method of claim 8 , further comprising: reporting program execution information from the server to the client system using in correlating information about the remote procedure call.
Claim 11
Dependent Claim 22 words
The method of claim 9 , wherein said program execution information includes program trace data for understanding execution of said distributed application.
Claim 12
Dependent Claim 27 words
The method of claim 1 , further comprising: gathering program execution information associated with a portion of the application being monitored without using a pre-execution instrumentation technique.
Claim 13
Dependent Claim 19 words
The method of claim 11 , wherein said portion is produced using one of: VBScript code and JavaScript code.
Claim 14
Dependent Claim 20 words
The method of claim 1 , further comprising: producing a portion of the application is using a non-generative translation technique.
Claim 15
Dependent Claim 19 words
The method of claim 1 , further comprising: producing a portion of the application is a generative translation technique.
Claim 16
Dependent Claim 15 words
The method of claim 1 , further comprising: registering the program monitor as a debugger.
Claim 17
Dependent Claim 15 words
The method of claim 1 , further comprising: transforming debug information into program execution information.
Claim 18
Dependent Claim 38 words
The method of claim 16 , wherein the program execution information includes function entry information, and the method further comprising: determining a source line included in the function entry information using function information stored in a line table.
Claim 19
Dependent Claim 38 words
The method of claim 17 , wherein said program execution information includes fiction exit information, and the method further comprises: detecting end of processing by detecting a predetermined period of execution inactivity associated with a portion of code.
Claim 20
Dependent Claim 27 words
The method of claim 18 , further comprising: transferring control, by address patching, to monitoring software upon detection of end of processing of a portion of code.
Claim 21
Dependent Claim 22 words
The method of claim 16 , wherein said program execution information includes execution information associated with execution of a line of code.
Claim 22
Dependent Claim 38 words
The method of claim 20 , further comprising: transferring control to the program monitor when executing in single step mode; recording first data after executing a first instruction about said first instruction and about a next subsequent instruction.
Claim 23
Dependent Claim 34 words
The method of claim 21 , further comprising: recording second data after executing said next subsequent instruction; and determining a processing time associated with the next subsequent instruction using said first and second data.
Claim 24
Dependent Claim 21 words
The method of claim 16 , wherein said program execution information includes tracing information used in connection with code coverage information.
Claim 25
Dependent Claim 35 words
The method of claim 1 , further comprising: transferring control to the program monitor after executing a line of code; and recording in the line table code coverage information associated with the line of code.
Claim 26
Dependent Claim 19 words
The method of claim 4 , further comprising: communicating the program execution information from a server to a client.
Claim 27
Dependent Claim 138 words
A computer program product for monitoring execution of an application comprising: machine executable code for reporting debugging information to a program monitor using an application debugging interface, said program monitor executing within address space of said application; machine executable code for gathering program execution information using the debugging information to monitor execution of the application, wherein said debugging information includes a character offset position associated with a source file; machine executable code for building a line table associated with the source file, the line table including beginning and ending character offsets, corresponding to a source line of the source file; and machine executable code for determining a source line number for said character offset position, wherein said character offset position is included in the debugging information and the source line number is included in the program execution information.
Claim 28
Dependent Claim 138 words
A computer program product for monitoring execution of an application comprising: machine executable code for reporting debugging information to a program monitor using an application debugging interface, said program monitor executing within address space of said application; machine executable code for gathering program execution information using the debugging information to monitor execution of the application, wherein said debugging information includes a character offset position associated with a source file; machine executable code for building a line table associated with the source file, the line table including beginning and ending character offsets, corresponding to a source line of the source file; and machine executable code for determining a source line number for said character offset position, wherein said character offset position is included in the debugging information and the source line number is included in the program execution information.
Claim 29
Dependent Claim 30 words
The computer program product of claim 26 , further comprising: machine executable code for deriving a portion of the program execution information from data reported using the application debugging interface.
Claim 30
Dependent Claim 21 words
The computer program product of claim 26 , wherein said application debugging interface is used in connection with debugging the application.
Claim 31
Dependent Claim 26 words
The computer program product of claim 26 , wherein the program execution information includes one of: profiling data, performance data, code coverage data, program tracing data.
Claim 32
Dependent Claim 54 words
The computer program product of claim 29 , wherein the program execution information includes cross execution context call information from a first execution context call to a second execution context call, said first execution context call being associated with a calling function and said second execution context call being associated with a called function.
Claim 33
Dependent Claim 15 words
The computer program product of claim 30 , wherein the application is a distributed application.
Claim 34
Dependent Claim 19 words
The computer program product of claim 31 , wherein the cross execution context call is a remote procedure call.
Claim 35
Dependent Claim 50 words
The computer program product of claim 32 , further comprising: machine executable code for executing the calling function in a client system; machine executable code for executing the called function in a server system; and machine executable code for correlating information about the remote procedure call at the client system.
Claim 36
Dependent Claim 34 words
The computer program product of claim 33 , further comprising: machine executable code for reporting program execution information from the server to the client system using in correlating information about the remote procedure call.
Claim 37
Dependent Claim 24 words
The computer program product of claim 34 , wherein said program execution information includes program trace data for understanding execution of said distributed application.
Claim 38
Dependent Claim 33 words
The computer program product of claim 26 , further comprising: machine executable code for gathering program execution information associated with a portion of the application being monitored without using a pre-execution instrumentation technique.
Claim 39
Dependent Claim 21 words
The computer program product of claim 36 , wherein said portion is produced using one of: VBScript code and JavaScript code.
Claim 40
Dependent Claim 25 words
The computer program product of claim 26 , further comprising: machine executable code for producing a portion of the application using a non-generative translation technique.
Claim 41
Dependent Claim 25 words
The computer program product of claim 26 , further comprising: machine executable code for producing a portion of the application using a generative translation technique.
Claim 42
Dependent Claim 21 words
The computer program product of claim 26 , further comprising: machine executable code for registering the program monitor as a debugger.
Claim 43
Dependent Claim 21 words
The computer program product of claim 26 , further comprising: machine executable code for transforming debug information into program execution information.
Claim 44
Dependent Claim 46 words
The computer program product of claim 41 , wherein the program execution information includes function entry information, and the computer program product further comprising: machine executable code for determining a source line included in the function entry information using function information stored in a line table.
Claim 45
Dependent Claim 46 words
The computer program product of claim 42 , wherein said program execution information includes function exit information, and the computer program product further comprises: machine executable code for detecting end of processing by detecting a predetermined period of execution inactivity associated with a portion of code.
Claim 46
Dependent Claim 33 words
The computer program product of claim 43 , further comprising: machine executable code for transferring control, by address patching, to monitoring software upon detection of end of processing of a portion of code.
Claim 47
Dependent Claim 24 words
The computer program product of claim 41 , wherein said program execution information includes execution information associated with execution of a line of code.
Claim 48
Dependent Claim 49 words
The computer program product of claim 5 , further comprising: machine executable code for transferring control to the program monitor when executing in single step mode; and machine executable code for recording first data after executing a first instruction about said first instruction and about a next subsequent instruction.
Claim 49
Dependent Claim 44 words
The computer program product of claim 46 , further comprising: machine executable code for recording second data after executing said next subsequent instruction; and machine executable code for determining a processing time associated with the next subsequent instruction using said first and second data.
Claim 50
Dependent Claim 23 words
The computer program product of claim 41 , wherein said program execution information includes tracing information used in connection with code coverage information.
Claim 51
Dependent Claim 45 words
The computer program product of claim 26 , further comprising: machine executable code for transferring control to the program monitor after executing a line of code; and machine executable code for recording in the line table code coverage information associated with the line of code.
Claim 52
Dependent Claim 25 words
The computer program product of claim 49 , further comprising: machine executable code for communicating the program execution information from a server to a client.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-04-13 2007-10-13 2008-04-13 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-04-13 2011-10-13 2012-04-13 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-04-13 2015-10-13 2016-04-13 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag