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.