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.
- 2. The software system of claim 1, wherein said information-gathering module monitors file access operations.
- 3. The software system of claim 1, wherein said information-gathering module monitors and highlights failed system interactions
- 4. The software system of claim 1, wherein said information-display module displays screen captures synchronized with logged events.
- 5. The software system of claim 1, wherein said information-display module replays screen captures in sequence.
- 6. The software system of claim 1, wherein said information-display module replays screen captures in sequence to produce a screen capture sequence, said information-display module also showing event information in sequence to produce an event information sequence, said event information sequence synchronized with said screen capture sequence.
- 7. The software system of claim 1, wherein said information-gathering module monitors attempts by said client program to access a windows registry.
- 8. The software system of claim 1, wherein said information-gathering module monitors use of DLLs.
- 9. The software system of claim 1, wherein said information-gathering module monitors attempts by said client program to spawn a subprocess or create a thread.
- 10. The software system of claim 1, wherein said information-gathering module monitors database operations.
- 11. The software system of claim 1, wherein said information-display module includes filters to control displaying of events in said log file.
- 12. The software system of claim 1, wherein said information-gathering module monitors interprocess communication performed by said client program.
- 13. The software system of claim 12, wherein said interprocess communication includes communication using COM.
- 14. The software system of claim 12, wherein said interprocess communication includes communication using DCOM.
- 15. The software system of claim 12, wherein said interprocess communication includes communication using semaphores.
- 16. The software system of claim 12, wherein said interprocess communication includes communication using shared memory.
- 17. The software system of claim 12, wherein said interprocess communication includes communication using network protocols.
- 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.
- 19. The method of claim 18, wherein said information-gathering module monitors file access operations.
- 20. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to access non-existent files.
- 21. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to access protected files.
- 22. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to write to a full disk.
- 23. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to access locked files.
- 24. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to access one or more registry entries.
- 25. The method of claim 18, wherein said information-gathering module monitors use of one or more DLLs.
- 26. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to spawn a subprocess.
- 27. The method of claim 18, wherein said information-gathering module monitors attempts by said client program to create a thread.
- 28. The method of claim 18, wherein said information-gathering module monitors interprocess communication performed by said client program.
- 29. The method of claim 18, further comprising the step of defining one or more filters to control how said information-display module displays said event data.
- 30. The method of claim 18, wherein said information-display module creates a first window to display a list of events monitored by said information-gathering module, and wherein said information-display module creates a second window to display screen capture information from said remote computer.
- 31. The method of claim 30, wherein said information-display module creates a third window to display a list of DLLs used by said client program.
- 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.
REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority benefit of Provisional Application No. 60/186,636, filed Mar. 3, 2000, titled “SYSTEM AND METHOD FOR SOFTWARE DIAGNOSTICS USING COMBINATION OF VISUAL AND DYNAMIC TRACING,” the disclosure of which is incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60186636 |
Mar 2000 |
US |