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 program without requiring modifications to the executable of the client program, said system comprising:
- an information-gathering module that monitors selected events occurring during execution of the client program and store data describing said events in a log file, said information-gathering module configured to monitor API events, message events, and program events, said information-gathering module further configured to obtain screen captures during execution of the client program, said information-gathering module configured to connect to said client program at runtime by hooking an in-memory executable image of said client program; and
an information-display module that displays information from said log file, said information-display module configured to list events logged in said log file, said information-display module further configured to display screen captures obtained by said information-gathering module, said information-display module configured to run on a different computer than said information-gathering module, thereby allowing remote troubleshooting of said client program.
4 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
344 Citations
32 Claims
-
1. A software system that facilitates the process of identifying and isolating software execution problems within a program without requiring modifications to the executable of the client program, said system comprising:
-
an information-gathering module that monitors selected events occurring during execution of the client program and store data describing said events in a log file, said information-gathering module configured to monitor API events, message events, and program events, said information-gathering module further configured to obtain screen captures during execution of the client program, said information-gathering module configured to connect to said client program at runtime by hooking an in-memory executable image of said client program; and
an information-display module that displays information from said log file, said information-display module configured to list events logged in said log file, said information-display module further configured to display screen captures obtained by said information-gathering module, said information-display module configured to run 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, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
18. A method for remotely troubleshooting problems occurring when trying to execute a client program on a remote computer, comprising:
-
loading a 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, said information-gathering module configured to connect to said client program at runtime by hooking said in-memory executable image, said information-gathering module configured to monitor selected events occurring during execution of said client program and store event data describing said events, said information-gathering module configured to monitor API events, message events, and program events, said information-gathering module further configured to obtain 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, said information-display module configured to receive said event data and list events logged in said event data, said information-display module further configured to display screen captures obtained by said information-gathering module.
-
-
32. A system for remotely troubleshooting problems occurring when trying to execute a client program on a remote computer, comprising:
-
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; and
an information-display module that displaying said data describing said events, said information-display module configured to list events in chronological order, said information-display module further configured to display screen captures obtained by said information-gathering module.
-
Specification