A debugging method is described wherein a debug information file is
constructed which includes information that identifies changes of variable
value assignments to registers at plural steps of program. The information
further includes data that identifies any change of sequence of machine
code instructions from the sequence of source code instructions that gave
rise to the machine code instructions. Using such information, hidden
breakpoints are inserted into the machine code (wherein a hidden
breakpoint enables access to an instruction to either store a variable
value from an identified register or to move to a machine code instruction
that corresponds in order to a source code instruction that gave rise to
the machine code instruction). Thereafter, the program is executed under
control of a debug program and, upon encountering a hidden breakpoint,
automatically either stores the variable value that exists in the
identified register or moves to execute a machine code instruction that is
indicated by the hidden breakpoint. The actions carried out in response to
encountering the hidden breakpoint are invisible to the user.