1. A method comprising: receiving navigational debug input from a debugger interface, the navigational debug input requesting the traversal of input code; in response to receiving the navigational debug input, saving a state of a program being executed in a corresponding debugger, including creating a child process from a currently executing process, and executing first program instructions corresponding to a portion of the program, wherein executing the program instructions comprises suspending the created child process, and continuing to execute the currently executing process; receiving input to reverse execution of the first program instructions corresponding to the portion of the program; and restoring, with one or more computers, the saved state of the program, wherein restoring the saved state of the program comprises suspending the currently executing process, activating the suspended child process, and causing the child process to execute the same first program instructions.