Methods, computers, and computer readable media are disclosed for recording
user-driven events within an application running on a computer that utilizes a
graphical user interface. Changes of focus of the application are detected and
entries for the resulting focus are logged. While the changes of focus are being
detected, the application is monitored for a window message that signifies user
activity. When a window message occurs, the activity of the window message is used
to specify the user-driven event. A focus of an entry previously logged may also
be obtained and used to specify the user-driven event, such as a mouse click on
a specific tool bar button of the graphical user interface. A series of user-driven
events can be recorded up to the occurrence of an application malfunction, and
then the recorded events can be followed by a user to reproduce the malfunction
and begin debugging the application.