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

Remote monitoring of computer programs

Assignee: Cisco Technology Inc
•
Filing: 1996-06-03
•
Granted: 1999-06-29
•
Expires: 2016-06-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Systems and methods for remotely monitoring the execution of computer programs are provided. Monitoring instructions are added the computer program so that during execution of the program, data may be collected regarding the program execution. The collected data may be automatically sent to a remote system or site for analysis. The monitoring instructions create little or no performance impact on the client yet provide valuable information to the developer of the program. Additionally, the monitoring instructions may be changes during computer program development.

Inventors

  • 👤 Mark D. Anderson
  • 👤 Evan J. Bigall
  • 👤 Christine Clifford
  • 👤 Reed Hastings
  • 👤 Jon Sorensen
  • 👤 Douglas Pan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 16:29
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/366; G06F11/07; G06F11/0703; G06F11/0706; G06F11/0715; G06F11/30; G06F11/34; G06F11/3466; G06F11/3495; G06F11/22; G06F11/2294; G06F2201/00; G06F2201/865

Claims Analysis

Total Claims: 53
Claim 1
Independent Claim 67 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising the steps of: modifying the computer program to include at least one monitoring instruction for collecting data regarding the execution of the computer program; executing the computer program; the at least one monitoring instruction collecting data regarding the execution of the computer program; and sending the collected data to a remote system.
Claim 2
Dependent Claim 67 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising the steps of: modifying the computer program to include at least one monitoring instruction for collecting data regarding the execution of the computer program; executing the computer program; the at least one monitoring instruction collecting data regarding the execution of the computer program; and sending the collected data to a remote system.
Claim 3
Dependent Claim 25 words
The method of claim 1, further comprising the step of automatically sending the collected data to the remote system when the computer program finishes execution.
Claim 4
Dependent Claim 23 words
The method of claim 1, further comprising the step of changing the at least one monitoring instruction over the computer program development cycle.
Claim 5
Dependent Claim 21 words
The method of claim 1, further comprising the step of classifying the execution of the computer program as normal or abnormal.
Claim 6
Dependent Claim 29 words
The method of claim 4, further comprising the step of saving the call stack in the collected data if the execution of the computer program is classified as abnormal.
Claim 7
Dependent Claim 26 words
The method of claim 1, further comprising the step of allowing a user to customize processing that will be performed when the computer program finishes execution.
Claim 8
Dependent Claim 28 words
The method of claim 1, further comprising the step of generating a symbolic call stack on the remote system so that the computer program may be debugged remotely.
Claim 9
Dependent Claim 35 words
The method of claim 1, wherein the computer program is compiled on the remote system and further comprising the step of storing a module map when the computer program is compiled on the remote system.
Claim 10
Dependent Claim 23 words
The method of claim 8, further comprising the step of storing a call stack and module list when the computer program finishes execution.
Claim 11
Dependent Claim 26 words
The method of claim 9, further comprising the step of generating a module name/relative virtual address (RVA) list from the call stack and the module list.
Claim 12
Dependent Claim 19 words
The method of claim 10, further comprising the step of sending the module name/RVA list to the remote system.
Claim 13
Dependent Claim 37 words
The method of claim 11, further comprising the step of generating a symbolic call stack on the remote system from the module map and the module name/RVA list so that the computer program may be debugged remotely.
Claim 14
Dependent Claim 15 words
The method of claim 1, further comprising the step of remotely debugging the computer program.
Claim 15
Dependent Claim 27 words
The method of claim 1, further comprising the step of sending a version of the computer program to the remote system during execution of the computer program.
Claim 16
Dependent Claim 22 words
The method of claim 14, further comprising the step of downloading a new version of the computer program from the remote system.
Claim 17
Dependent Claim 17 words
The method of claim 1, further comprising the step of sending information to a bug tracking application.
Claim 18
Dependent Claim 28 words
The method of claim 1, further comprising the step of, for each portion of the computer program designed by a different vendor, collecting data specific to each portion.
Claim 19
Dependent Claim 15 words
The method of claim 1, wherein the at least one monitoring instruction specifies a vendor.
Claim 20
Dependent Claim 24 words
The method of claim 1, further comprising the step of adding the at least one monitoring instruction to source code of the computer program.
Claim 21
Dependent Claim 24 words
The method of claim 19, further comprising the step of utilizing a Windows hook to intercept a system call invoked by the computer program.
Claim 22
Dependent Claim 25 words
The method of claim 1, further comprising the step of augmenting object code of the computer program to include the at least one monitoring instruction.
Claim 23
Dependent Claim 16 words
The method of claim 1, wherein the at least one monitoring instructions are computer platform independent.
Claim 24
Dependent Claim 52 words
A distributed computer system, comprising: a server computer; a client computer in communication with the server computer; and a computer program running on the client computer that has been modified to include at least one monitoring instruction that collects and sends data regarding execution of the computer program to the server computer.
Claim 25
Dependent Claim 52 words
A distributed computer system, comprising: a server computer; a client computer in communication with the server computer; and a computer program running on the client computer that has been modified to include at least one monitoring instruction that collects and sends data regarding execution of the computer program to the server computer.
Claim 26
Dependent Claim 20 words
The distributed computer system of claim 23, further comprising a transport medium connecting the client computer and the server computer.
Claim 27
Dependent Claim 16 words
The distributed computer system of claim 24, wherein the transport medium is a network or media.
Claim 28
Dependent Claim 17 words
The distributed computer system of claim 23, further comprising a dynamic-link library (DLL) for intercepting system calls.
Claim 29
Dependent Claim 13 words
The distributed computer system of claim 23, further comprising a bug tracking application.
Claim 30
Dependent Claim 25 words
The distributed computer system of claim 23, further comprising an expansion mechanism for augmenting the computer program to include the at least one monitoring instruction.
Claim 31
Dependent Claim 57 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction, the at least one monitoring instruction collecting data regarding the execution of the computer program; and code that sends the collected data to a remote system.
Claim 32
Dependent Claim 57 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction, the at least one monitoring instruction collecting data regarding the execution of the computer program; and code that sends the collected data to a remote system.
Claim 33
Dependent Claim 26 words
The computer program product of claim 29, further comprising code that automatically sends the collected data to the remote system when the computer program finishes execution.
Claim 34
Dependent Claim 22 words
The computer program product of claim 29, further comprising code that classifies the execution of the computer program as normal or abnormal.
Claim 35
Dependent Claim 30 words
The computer program product of claim 29, further comprising code that saves the call stack in the collected data if the execution of the computer program is classified as abnormal.
Claim 36
Dependent Claim 27 words
The computer program product of claim 29, further comprising code that allows a user to customize processing that will be performed when the computer program finishes execution.
Claim 37
Dependent Claim 24 words
The computer program product of claim 29, further comprising code that stores a call stack and module list when the computer program finishes execution.
Claim 38
Dependent Claim 27 words
The computer program product of claim 34, further comprising code that generates a module name/relative virtual address (RVA) list from the call stack and the module list.
Claim 39
Dependent Claim 20 words
The computer program product of claim 35, further comprising code that sends the module name/RVA list to the remote system.
Claim 40
Dependent Claim 22 words
The computer program product of claim 29, further comprising code that downloads a version of the computer program from the remote system.
Claim 41
Dependent Claim 18 words
The computer program product of claim 29, further comprising code that sends information to a bug tracking application.
Claim 42
Dependent Claim 17 words
The computer program product of claim 29, wherein the at least one monitoring instruction specifies a vendor.
Claim 43
Dependent Claim 74 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising: modifying the computer program to include at least one monitoring instruction; executing the computer program; the at least one monitoring instruction saving a call stack and a module list of the computer program; generating a module name/relative virtual address (RVA) list from the call stack and the module list; and sending the module name/RVA list to a remote system.
Claim 44
Dependent Claim 74 words
In a computer system, a method of remotely monitoring execution of a computer program, comprising: modifying the computer program to include at least one monitoring instruction; executing the computer program; the at least one monitoring instruction saving a call stack and a module list of the computer program; generating a module name/relative virtual address (RVA) list from the call stack and the module list; and sending the module name/RVA list to a remote system.
Claim 45
Dependent Claim 32 words
The method of claim 40, further comprising generating a symbolic call stack on the remote system from a module map generated when the computer program was compiled and the module name/RVA list.
Claim 46
Dependent Claim 20 words
The method of claim 41, further comprising debugging the computer program on the remote system utilizing the symbolic call stack.
Claim 47
Dependent Claim 18 words
The method of claim 40, further comprising classifying the execution of the computer program as normal or abnormal.
Claim 48
Dependent Claim 28 words
The method of claim 43, wherein the module name/RVA list is automatically sent to the remote system if the execution of the computer program is classified as abnormal.
Claim 49
Dependent Claim 74 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction that saves a call stack and a module list of the computer program; code that generates a module name/relative virtual address (RVA) list from the call stack and the module list; and code that sends the module name/RVA list to a remote system.
Claim 50
Dependent Claim 74 words
A computer program product for remotely monitoring execution of a computer program, comprising: a computer readable storage medium storing the computer program comprising: code that calls at least one monitoring instruction that saves a call stack and a module list of the computer program; code that generates a module name/relative virtual address (RVA) list from the call stack and the module list; and code that sends the module name/RVA list to a remote system.
Claim 51
Dependent Claim 25 words
The computer program product of claim 45, wherein the module name/RVA list is automatically sent to the remote system when the computer program finishes execution.
Claim 52
Dependent Claim 22 words
The computer program product of claim 45, further comprising code that classifies the execution of the computer program as normal or abnormal.
Claim 53
Dependent Claim 30 words
The computer program product of claim 47, wherein the module name/RVA list is automatically sent to the remote system if the execution of the computer program is classified as abnormal.

References Cited (Backward Citations)

US4802165A Cited
US5388211A Cited
US5511185A Cited
US5371746A Cited
US5535329A Cited
US5442791A Cited
US5506955A Cited
US5371883A Cited
US5561763A Cited
US5539907A Cited
US5710724A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag