Go to the previous, next section.

Edebug Modes

Edebug supports several execution modes for running the program you are debugging. We call these alternatives Edebug modes; do not confuse them with major modes or minor modes. The current Edebug mode determines how Edebug displays the progress of the evaluation, whether it stops at each stop point, or continues to the next breakpoint, for example.

Normally, you specify the Edebug mode for execution by typing a command to continue the program in a certain mode. Here is a table of these commands. All except for S resume execution of the program, at least for a certain distance.

S
Stop: don't execute any more of the program for now, just wait for more Edebug commands.

SPC
Step: stop at the next stop point encountered.

t
Trace: pause one second at each Edebug stop point.

T
Rapid trace: mention each stop point, but don't actually pause.

g
Go: run until the next breakpoint. See section Breakpoints.

c
Continue: pause for one second at each breakpoint, but don't stop.

C
Continue: mention each breakpoint, but don't actually pause.

G
Non-stop: ignore breakpoints. You can still stop the program by typing S.

In general, the execution modes earlier in the above list run the program more slowly or stop sooner.

When you enter a new Edebug level, the mode comes from the value of the variable edebug-initial-mode. By default, this specifies step mode. If the mode thus specified is not stop mode, then the Edebug level executes the program (or part of it).

While executing or tracing, you can interrupt the execution by typing any Edebug command. Edebug stops the program at the next stop point and then executes the command that you typed. For example, typing t during execution switches to trace mode at the next stop point.

You can use the S command to stop execution without doing anything else.

If your function happens to read input, a character you hit intending to interrupt execution may be read by the function instead. You can avoid such unintended results by paying attention to when your program wants input.

Keyboard macros containing the commands in this section do not completely work: exiting from Edebug, to resume the program, loses track of the keyboard macro. This is not easy to fix.

Go to the previous, next section.