In a method and system for debugging a program, a debugging module is loaded
into
a normal thread of execution of the program. A user may then send commands to the
debugger module from a command console module operating in a safe separate process.
The debugger module receives the commands and converts them into function calls
to objects that are accessible by the program. This allows the user to interact
manually with the objects and achieve substantially the same responses from the
objects as the program itself would have obtained during its normal execution.
Thus the user can effectively debug the program without having to know the internal
structure of any of its constituent objects.