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

System and method for monitoring and analyzing the execution of computer programs

Assignee: Bmc Helix Israel Ltd
•
Filing: 1998-07-30
•
Granted: 2001-08-28
•
Expires: 2018-07-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A software system is disclosed which facilitates the process of tracing the execution paths of a program, called the client. The tracing is performed without requiring modifications to the executable or source code files of the client. Trace data collected during the tracing operation is collected according to instructions in a trace options file. At run time, the tracing library attaches to the memory image of the client. The tracing library is configured to monitor execution of the client and to collect trace data, based on selections in the trace options file. The developer then uses a trace analyzer program, also having a graphical user interface, to view the trace information. The system can trace multiple threads and multiple processes. The tracing library is preferably configured to runs in the same process memory space as the client thereby tracing the execution of the client program without the need for context switches. The tracing system provides a remote mode and an online mode. In remote mode, the developer sends the trace control information to a remote user site together with a small executable image called the agent that enables a remote customer, to generate a trace file that represents execution of the client application at the remote site. In online mode, the developer can generate trace options, run and trace the client, and display the trace results in near real-time on the display screen during execution of the client program.

Inventors

  • 👤 Shlomo Wygodny
  • 👤 Dmitry Barboy
  • 👤 Georgi Prouss
  • 👤 Anatoly Vorobey

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 11:45
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3698; G06F11/30; G06F11/34; G06F11/3466; G06F11/362; G06F11/3636; G06F11/32; G06F11/323; G06F11/3495

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 299 words
A software system that facilitates the process of identifying and isolating bugs within a plurality of programs each running one or more threads, without requiring modifications to executable or source code files of said programs, each of said programs including at least a source code representation, an executable code representation, and build information that links the source code representation to the executable code representation, the build information generated during building of the executable representation from the source code representation, the software system comprising: a first user interface module that displays source code elements of one or more source programs on a display screen together with controls that enable a software developer to interactively specify one or more source code elements to be traced, the first user interface module configured to generate trace control information based on selections by said developer of said source code elements to be traced, said first user interface module using at least said build information to generate said trace control information; a first library module configured to attach to a memory image of a first process executing a first program, said first library module configured to use said trace control information to monitor execution of said first program and to generate first trace information; a second library module configured to attach to a memory image of a second process executing a second program, said second library module configured to use said trace control information and to monitor execution of said second program and to generate second trace information; and a second user interface module that translates said first and second trace information into a human-readable form based at least on said build information, and displays translated information on a display screen to allow said developer to analyze the execution of said first and second programs.
Claim 2
Dependent Claim 299 words
A software system that facilitates the process of identifying and isolating bugs within a plurality of programs each running one or more threads, without requiring modifications to executable or source code files of said programs, each of said programs including at least a source code representation, an executable code representation, and build information that links the source code representation to the executable code representation, the build information generated during building of the executable representation from the source code representation, the software system comprising: a first user interface module that displays source code elements of one or more source programs on a display screen together with controls that enable a software developer to interactively specify one or more source code elements to be traced, the first user interface module configured to generate trace control information based on selections by said developer of said source code elements to be traced, said first user interface module using at least said build information to generate said trace control information; a first library module configured to attach to a memory image of a first process executing a first program, said first library module configured to use said trace control information to monitor execution of said first program and to generate first trace information; a second library module configured to attach to a memory image of a second process executing a second program, said second library module configured to use said trace control information and to monitor execution of said second program and to generate second trace information; and a second user interface module that translates said first and second trace information into a human-readable form based at least on said build information, and displays translated information on a display screen to allow said developer to analyze the execution of said first and second programs.
Claim 3
Dependent Claim 47 words
The software system of claim 1 , wherein said first and second library modules are adapted to be executed separately from said first and second user interface modules, the system thereby enabling a developer to remotely control and evaluate the tracing of said first and second programs.
Claim 4
Dependent Claim 155 words
A software execution tracing system loaded into a computer memory for tracing a plurality of concurrently running client programs, each of said currently running client programs having at least a source code representation and an executable code representation, said software system comprising: a first trace library module that attaches at runtime to a memory image of a first running program, said first running program being one of said client programs, said first trace library module configured to monitor execution of said first running program and to generate first trace information that reflects execution of said first running program; and a second trace library module that attaches at runtime to a memory image of a second running program, said second running program being one of said client programs, said second trace library module configured to monitor execution of said second running program and to generate second trace information that reflects execution of said second running program.
Claim 5
Dependent Claim 155 words
A software execution tracing system loaded into a computer memory for tracing a plurality of concurrently running client programs, each of said currently running client programs having at least a source code representation and an executable code representation, said software system comprising: a first trace library module that attaches at runtime to a memory image of a first running program, said first running program being one of said client programs, said first trace library module configured to monitor execution of said first running program and to generate first trace information that reflects execution of said first running program; and a second trace library module that attaches at runtime to a memory image of a second running program, said second running program being one of said client programs, said second trace library module configured to monitor execution of said second running program and to generate second trace information that reflects execution of said second running program.
Claim 6
Dependent Claim 37 words
The software system of claim 3 , wherein said first and second trace library modules are configured to run under the control of a multi-processing operating system wherein said first and second running programs are running concurrently.
Claim 7
Dependent Claim 35 words
The software system of claim 4 , wherein said first and second trace library modules are configured to run under the control of an operating system wherein said first and second running programs are multithreaded.
Claim 8
Dependent Claim 26 words
The software system of claim 3 , wherein said first and second trace library modules are configured to generate trace information according to trace control information.
Claim 9
Dependent Claim 32 words
The software system of claim 3 , wherein said first trace library module and said second trace library module are configured to run at the same time on a multi-processor computer system.
Claim 10
Dependent Claim 26 words
The software system of claim 3 , further comprising a display module configured to display at least a part of said first and second trace information.
Claim 11
Dependent Claim 32 words
The software system of claim 8 , wherein said display module displays translated trace information on a display screen during execution of at least one of said first and second running programs.
Claim 12
Dependent Claim 41 words
The software system of claim 8 , wherein said display module provides an offline analysis mode which provides functionality for interactively analyzing translated trace information after the monitoring of at least one of said first and second running programs has completed.
Claim 13
Dependent Claim 33 words
The software system of claim 8 , wherein said display module is configured to translate at least part of said first trace information into a human-readable form based on at least build information.
Claim 14
Dependent Claim 28 words
The software system of claim 11 , wherein said build information comprises debug information generated by a compiler program during compilation of said first client source code representation.
Claim 15
Dependent Claim 17 words
The software system of claim 8 , wherein said display module is configured to display process information.
Claim 16
Dependent Claim 34 words
The software system of claim 8 , wherein said display module is configured to display information showing when said first running program is executing in relation to when said second running program is executing.
Claim 17
Dependent Claim 30 words
The software system of claim 8 , wherein said display module is configured to show a temporal relationship between execution of said first running program and said second running program.
Claim 18
Dependent Claim 220 words
A software execution tracing system loaded into a computer memory for tracing a plurality of concurrently running client programs, each of said currently running client programs having at least a source code representation and an executable code representation, said software system comprising: a first trace library module that attaches during runtime to a memory image of a first running program, said first running program being one of said client programs, said first trace library module configured to monitor execution of said first running program and to generate first trace information that reflects execution of said first running program; and a second trace library module that attaches during runtime to a memory image of a second running program, said second running program being one of said client programs, said second trace library module configured to monitor execution of said second running program and to generate second trace information that reflects execution of said second running program wherein said first and second trace library modules are configured to run under the control of a multi-processing operating system, said first trace library module configured to run in a process memory space that has been allocated to said first running program and said second trace library module configured to run in a process memory space that has been allocated to said second running program.
Claim 19
Dependent Claim 220 words
A software execution tracing system loaded into a computer memory for tracing a plurality of concurrently running client programs, each of said currently running client programs having at least a source code representation and an executable code representation, said software system comprising: a first trace library module that attaches during runtime to a memory image of a first running program, said first running program being one of said client programs, said first trace library module configured to monitor execution of said first running program and to generate first trace information that reflects execution of said first running program; and a second trace library module that attaches during runtime to a memory image of a second running program, said second running program being one of said client programs, said second trace library module configured to monitor execution of said second running program and to generate second trace information that reflects execution of said second running program wherein said first and second trace library modules are configured to run under the control of a multi-processing operating system, said first trace library module configured to run in a process memory space that has been allocated to said first running program and said second trace library module configured to run in a process memory space that has been allocated to said second running program.
Claim 20
Independent Claim 94 words
A method for simultaneously tracing the execution path of first and second client programs, said first client program having a first memory image and said second client program having a second memory image, the method comprising the steps of: instrumenting said first memory image at runtime to enable execution of said first client program to be traced; instrumenting said second memory image at runtime to enable execution of said second client program to be traced; and collecting trace data relating to a concurrent execution of said first client program and said second client program.
Claim 21
Independent Claim 94 words
A method for simultaneously tracing the execution path of first and second client programs, said first client program having a first memory image and said second client program having a second memory image, the method comprising the steps of: instrumenting said first memory image at runtime to enable execution of said first client program to be traced; instrumenting said second memory image at runtime to enable execution of said second client program to be traced; and collecting trace data relating to a concurrent execution of said first client program and said second client program.
Claim 22
Dependent Claim 23 words
The method of claim 17 , wherein said concurrent execution comprises time-shared execution of said first client program and said second client program.
Claim 23
Dependent Claim 28 words
The method of claim 17 , wherein said concurrent execution comprises parallel execution of said first client program and said second client program on a multi-processor computer system.
Claim 24
Dependent Claim 21 words
The method of claim 17 , wherein said second client program is executed in a sub-process of said first client program.
Claim 25
Dependent Claim 16 words
The method of claim 17 , wherein said first client program is a dynamic link library.
Claim 26
Dependent Claim 21 words
The method of claim 17 , wherein said first memory image and said second memory image are in separate address spaces.
Claim 27
Dependent Claim 15 words
The method of claim 17 , wherein said trace data is stored in shared memory.
Claim 28
Dependent Claim 26 words
The method of claim 17 , wherein said step of instrumenting said first memory image comprises attaching a trace library module to said first memory image.
Claim 29
Dependent Claim 15 words
The method of claim 17 , further comprising the step of analyzing said trace data.
Claim 30
Dependent Claim 20 words
The method of claim 25 , wherein said step of analyzing comprises translating said trace information into a human-readable form.
Claim 31
Dependent Claim 25 words
The method of claim 25 , wherein said step of analyzing comprises translating said trace data into human-readable data based on at least build information.
Claim 32
Dependent Claim 18 words
The method of claim 25 , wherein said step of analyzing comprises displaying an execution call tree display.
Claim 33
Dependent Claim 34 words
The method of claim 28 , wherein said execution call tree display shows a first execution call tree for said first client program and a second execution call tree for said second client program.
Claim 34
Dependent Claim 28 words
The method of claim 28 , wherein said execution call tree display shows a temporal relationship between execution of said first client program and said second client program.
Claim 35
Dependent Claim 21 words
The method of claim 28 , wherein said execution call tree display shows execution call trees for a plurality of threads.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-08-27 2005-02-26 2005-08-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-08-27 2009-02-26 2009-08-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-08-27 2013-02-26 2013-08-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag