A debugger provides a user with the ability to trace through the user's
program to detect one or more errors. The debugger steps through the
program until it reaches a breakpoint set at a selected step by the user.
After stepping through the program and detecting one or more errors, the
user revises the program and re-executes the debugger. The debugger
automatically restores the breakpoint to the selected step, which is
often at a different line number in the program, after revisions are made
to the program code.