A debugger alters the execution flow of a child computer program of the
debugger at runtime by inserting jump statements determined by the
insertion of breakpoint instructions. Breakpoints are used to force the
child computer program to throw exceptions at specified locations. One or
more instructions of the computer program are replaced by jump
instructions. The jump destination addresses associated with the break
instructions can be specified by input from a user. The debugger changes
the instruction pointer of the child program to achieve the desired
change in execution flow. No instructions are lost in the child program.