System and method for software diagnostics using a combination of visual and dynamic tracing
First Claim
1. A computer system that facilitates a visual process of identifying and isolating software execution problems within a client program without requiring modifications to the executable of the client program, said system comprising:
- a first computer having a first processor and a first display device, the first processor executing the client program in a runtime environment that includes generating information displayed on the first display device;
a second computer having a second processor and a second display device, the first computer being remote from but communicatively connected to the second computer;
a trace options module configured, when executed using the second processor, to receive from a user a selection of one or more source code portions of the client program, the selections being recorded in a trace control file that is sent to the first computer with a tracing agent;
an information-gathering module configured, when executed using the first processor, to;
connect to the runtime environment of the client program using the tracing agent;
monitor selected events related to the user-selected source code portions recorded in the trace control file, the selected events occurring during execution of the client program, and store data describing said events in a log file,augment the log file with API events, message events, and program events, including screen update events and user interaction events, occurring during execution of the client program but outside of the user-selected source code portions, andobtain screen captures of images displayed on the first display device by the client program in response to storing the API events, message events, and program events, and store the screen captures in the log file; and
an information-display module configured, when executed on the second processor, to;
receive said log file,display an animated list of events logged in said log file in a first portion of the second display device, andplay an animation of the screen captures by rendering the screen captures in a second portion of the second display device, the animation of the screen captures being synchronized with the animated event display by advancing the screen capture animation when a screen update event or user interaction event that triggered the obtaining of the screen capture is encountered in the log file.
6 Assignments
0 Petitions
Accused Products
Abstract
A software system is disclosed that provides remote troubleshooting and tracing of the execution of computer programs. The software system includes an information-gathering module that gathers run-time information about program execution, program interaction with the operating system and the system resources, monitors user actions and captures screen output, and passes the gathered information to an information-display module, the gathered information allowing a support technician (e.g., a software developer, a help desk person, etc.) to see the user interactions with the program and corresponding reactions of the system, and/or to remotely view environment variables, file access operations, system interactions, and user interactions that occur on the user'"'"'s computer and locate failed operations that cause execution problems.
-
Citations
20 Claims
-
1. A computer system that facilitates a visual process of identifying and isolating software execution problems within a client program without requiring modifications to the executable of the client program, said system comprising:
-
a first computer having a first processor and a first display device, the first processor executing the client program in a runtime environment that includes generating information displayed on the first display device; a second computer having a second processor and a second display device, the first computer being remote from but communicatively connected to the second computer; a trace options module configured, when executed using the second processor, to receive from a user a selection of one or more source code portions of the client program, the selections being recorded in a trace control file that is sent to the first computer with a tracing agent; an information-gathering module configured, when executed using the first processor, to; connect to the runtime environment of the client program using the tracing agent; monitor selected events related to the user-selected source code portions recorded in the trace control file, the selected events occurring during execution of the client program, and store data describing said events in a log file, augment the log file with API events, message events, and program events, including screen update events and user interaction events, occurring during execution of the client program but outside of the user-selected source code portions, and obtain screen captures of images displayed on the first display device by the client program in response to storing the API events, message events, and program events, and store the screen captures in the log file; and an information-display module configured, when executed on the second processor, to; receive said log file, display an animated list of events logged in said log file in a first portion of the second display device, and play an animation of the screen captures by rendering the screen captures in a second portion of the second display device, the animation of the screen captures being synchronized with the animated event display by advancing the screen capture animation when a screen update event or user interaction event that triggered the obtaining of the screen capture is encountered in the log file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for facilitating visual troubleshooting of problems occurring when trying to execute a client program on a remote computer, comprising:
-
receiving from a user one or more selected source code portions of the client program at a second computer, the second computer comprising a second processor and a second display device and being remote from but communicatively connected to the remote computer, the selections being recorded in a trace control file; loading the client program on a processor of said remote computer to create an in-memory executable image of said client program, the remote computer having a first display device, the client program generating information displayed on the first display device; sending the trace control file and a tracing agent from the second computer to the remote computer; loading an information-gathering module on said processor of said remote computer, wherein said information-gathering module; connects to said client program at runtime by hooking to said in-memory executable image using the tracing agent, monitors selected events related to the user-selected source code portions recorded in the trace control file, the selected events occurring during execution of said client program and stores event data describing said events in a log file, augments the log file with API events, message events, and program events, including screen update events and user interaction events, that occur outside the events related to the user-selected source code portions and stores the API events, the message events, and the program events in a log file, and obtains screen captures of images displayed on the first display device by the client program in response to storing the screen update events and the user interaction events in the log file and stores the screen captures in the log file; loading an information-display module on a processor of the second computer; and sending said log file to said information-display module, wherein said information-display module; receives said log file, displays an animated list of said stored events in a first portion of the second display device, and plays an animation of the screen captures by rendering the screen captures in a second portion of the second display device, the animation of the screen captures being synchronized with the animated event display by advancing the screen capture animation when a screen update event or user interaction event that triggered the obtaining of the screen capture is encountered in the log file. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system having one or more processors for facilitating visual troubleshooting of problems occurring when executing a client program using a first processor on a remote computer, the execution creating an in-memory executable image of the client program, the system comprising:
-
means for receiving from a user, using a second computer comprising a processor and a second display device and being remote from but communicatively connected to the remote computer, one or more selected source code portions of the client program the selections being recorded in a trace control file; means for sending the trace control file to the remote computer with a tracing agent; means for monitoring events related to the user-selected source code portions recorded in the trace control file, the selected events occurring during execution of said client program on said remote computer and storing said events in a log file, said remote computer comprising the first processor and a first display device, the execution of said client program generating information displayed on said first display device, means for augmenting the log file with API events, message events, and program events, including screen update events and user interaction events, and storing data describing said API events, message events, and program events in the log file; means for obtaining screen captures of images displayed on the first display device in response to storing the screen update events and user interaction events in the log file, and storing the screen captures in the log file; means for hooking said means for monitoring and means for obtaining to the in-memory executable copy of said client program using the tracing agent; means for receiving the log file at the second computer; and an information-display module executed on the second computer for; displaying to the user said data describing said events in an animated list in a first portion of the second display device, wherein said information-display module lists events in chronological order, playing an animation of the screen captures by rendering the screen captures in a second portion of the second display device, the animation of the screen captures being synchronized with the animated event display by advancing the screen capture animation when a screen update event or user interaction event that triggered the obtaining of the screen capture is encountered in the log file. - View Dependent Claims (17, 18, 19, 20)
-
Specification