System and method for conditional tracing of computer programs
First Claim
1. A method of tracing the execution of a computer program comprising:
- generating trace control information which specifies triggers and associated actions;
tracing executing of the computer program according to the trace control information, such that when one of said triggers occurs the corresponding action is performed; and
generating a trace log of said tracing, wherein the trace log reflects said actions performed during tracing.
8 Assignments
0 Petitions
Accused Products
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. Conditional tracing, through the use of triggers and actions taken in response to the triggers, allows the developer to control the tracing operation. The triggers can be conditional triggers in which the corresponding action is taken only if a conditional expression is satisfied. The system can trace multiple threads and multiple processes. The tracing system provides a remote mode and an online mode. In remote mode, the developer sends the trace control information (which can include triggers and corresponding actions) 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 (including triggers and corresponding actions), run and trace the client, and display the trace results in near real-time on the display screen during execution of the client program.
260 Citations
36 Claims
-
1. A method of tracing the execution of a computer program comprising:
-
generating trace control information which specifies triggers and associated actions;
tracing executing of the computer program according to the trace control information, such that when one of said triggers occurs the corresponding action is performed; and
generating a trace log of said tracing, wherein the trace log reflects said actions performed during tracing. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of remotely debugging a client program which runs at a client site which is located remotely from a developer site, the method comprising:
-
using a first code module at the developer site to select a plurality of source code elements of the client program to be traced, and to generate trace control information which indicates said source code elements, wherein said trace control information includes one or more pairs of triggers and actions, said one or more pairs of triggers and actions each specifying an event and an action to take in response to said event;
transmitting said trace control information to the client site;
at the client site, executing the client program together with a second code module which traces the execution of said client program based on said trace control information, to thereby generate a trace log which reflects execution of the client program;
transmitting said trace log from said client site to the developer site; and
at the developer site, using the trace log to debug the client program;
-
-
7. A software system that facilitates the process of identifying and isolating bugs within a client program without requiring modifications to the executable and source code files of the client program, the client program including at least a source code representation, an executable code representation, and debug information that links the source code representation to the executable code representation, the debug information generated by a compiler program during compilation of the client source code representation, the software system comprising:
-
a first code module that displays source code elements of said client on a display screen together with controls that enable a software developer to interactively specify one or more elements to be traced, the first code module configured to generate trace control information based on selections by said developer of said source code elements to be traced, said first code module using at least said debug information to generate said trace control information, said trace control information comprising conditional tracing data expressed as triggers and actions related to said triggers;
a second code module that attaches to a memory image of said object code representation of said client program based on said trace control information, said second code module configured to monitor execution of said client program and to generate, based at least in part on said triggers and said actions, trace information that reflects said execution, said second code module configured to run in a same context as said client program; and
a third code module that translates said trace information into a human-readable form based on at least said debug information, and displays translated trace information on said display screen to allow said developer to analyze the execution of said client program.
-
-
8. A software execution tracing system for tracing a client program having at least a source code representation and an executable code representation, said software system comprising:
-
a first code module that attaches to a memory image of said client program, said first code module configured to monitor execution of said client program and to generate trace information that reflects said execution, said trace information generated at least in part by specified actions in response to specified triggers; and
a second code module that translates said trace information into a human-readable form, and displays translated trace information on said display screen to allow said developer to analyze the execution of said client program. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for simultaneously tracing the execution path of one or more client programs, said method comprising the steps of:
-
loading a client program into a computer memory to create an in-memory image of said client program;
instrumenting said in-memory image of said client program by attaching a trace library module to said client program;
collecting trace data relating to the execution of said client program and transferring said trace data to a trace log, wherein collecting trace data comprises taking actions in response to triggers;
transferring said encoded trace log to computer memory accessible by a trace analysis tool; and
analyzing said trace data using said executable analysis tool by decoding and displaying said trace data. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification