Traveling Commands Sensitive to Spypoints

The basic traveling commands listed above all ignore spypoints; the following commands take advantage of spypoints.


leap
Causes the debugger to resume running your program, stopping only when the next spypoint is reached, or when the program terminates. Leaping can be used to follow the program's execution at a higher level than exhaustive tracing through creeping. This is done by setting spypoints on a set of pertinent procedures or calls, then following the control flow through these by leaping from one to the next.
quasi-skip
Causes the debugger to resume running your program, stopping when the next spypoint is reached. It also ensures that the debugger will stop at the current invocation's Done, Exit, Fail, or Exception port, when one is reached. Thus quasi-skip is a combination of leaping and skipping. You may use it to travel to the next spypoint while also marking a place to stop when execution returns there.
zip
Is just like leap, except that the debugger does not keep any debugging information while looking for a spypoint, so it runs at nearly full compiled speed. It does mean that the debugger will be unable to show you the ancestors between the invocation you zipped from and the invocation you stopped at.

Zipping gives up some information in exchange for greatly increased speed. This is not always desirable, but sometimes is very helpful. A good use for zipping might be to run through a time-consuming initial part of a computation that is known to work properly, and stop at the beginning of a part that has a bug. From that point, you might use leaping, creeping, and skipping to locate the bug.