SYSTEM AND METHOD FOR SOFTWARE DIAGNOSTICS USING A COMBINATION OF VISUAL AND DYNAMIC TRACING
First Claim
1. A software system that facilitates the 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 trace options module, with which a user can select one or more code portions of the client program;
an information-gathering module for monitoring selected events occurring during execution of the client program and storing data describing said events in a log file, wherein said information-gathering module monitors API events, message events, and program events, and wherein said information-gathering module obtains screen captures during execution of the client program, and wherein said information-gathering module connects to said client program at runtime by hooking an in-memory executable image of said client program for the code portions selected by the user in the trace options module; and
an information-display module for displaying information from said log file to a user, wherein said information-display module lists events logged in said log file, and wherein said information-display module displays screen captures obtained by said information-gathering module, and wherein said information-display module runs on a different computer than said information-gathering module, thereby allowing remote troubleshooting of said client program.
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 allows a remote software developer or help desk person to troubleshoot computer environment and installation problems such as missing or corrupted environment variables, files, DLLs, registry entries, and the like. In one embodiment 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. The information-gathering module also monitors user actions and captures screen output. The information-gathering module passes the gathered information to an information-display module. The information-display module allows 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. In one embodiment, the information-display module allows the support technician 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
158 Citations
8 Claims
-
1. A software system that facilitates the 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 trace options module, with which a user can select one or more code portions of the client program; an information-gathering module for monitoring selected events occurring during execution of the client program and storing data describing said events in a log file, wherein said information-gathering module monitors API events, message events, and program events, and wherein said information-gathering module obtains screen captures during execution of the client program, and wherein said information-gathering module connects to said client program at runtime by hooking an in-memory executable image of said client program for the code portions selected by the user in the trace options module; and an information-display module for displaying information from said log file to a user, wherein said information-display module lists events logged in said log file, and wherein said information-display module displays screen captures obtained by said information-gathering module, and wherein said information-display module runs on a different computer than said information-gathering module, thereby allowing remote troubleshooting of said client program. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for remotely troubleshooting problems occurring when trying to execute a client program on a remote computer, comprising:
-
receiving from a user one or more selected code portions of the client program; loading the client program on a remote computer to create an in-memory executable image of said client program; loading an information-gathering module on said remote computer, wherein said information-gathering module connects to said client program at runtime by hooking said in-memory executable image for the code portions selected by the user, and wherein said information-gathering module monitors selected events occurring during execution of said client program and stores event data describing said events, and wherein said information-gathering module monitors API events, message events, and program events, said information-gathering module obtains screen captures during execution of said client program; loading an information-display module on a second computer; and sending said event data to said information-display module, wherein said information-display module receives said event data and lists said stored event data, and wherein said information-display module displays screen captures to a user obtained by said information-gathering module.
-
-
8. A system for remotely troubleshooting problems occurring when trying to execute a client program on a remote computer, comprising:
-
means for receiving from a user one or more selected code portions of the client program; means for monitoring events and capturing screenshots occurring during execution of a client program and storing data describing said events, said events including API events, message events, and program events; means for hooking said means for monitoring to an in-memory executable copy of said client program for the code portions selected by the user; and an information-display module for displaying to a user said data describing said events, wherein said information-display module lists events in chronological order, and wherein said information-display module displays screen captures obtained by said information-gathering module.
-
Specification