Edebug Display Update
When Edebug needs to display something (e.g., in trace mode), it saves the current window configuration from outside Edebug (see Window Configurations). When you exit Edebug, it restores the previous window configuration.
Emacs redisplays only when it pauses. Usually, when you continue execution, the program re-enters Edebug at a breakpoint or after stepping, without pausing or reading input in between. In such cases, Emacs never gets a chance to redisplay the outside configuration. Consequently, what you see is the same window configuration as the last time Edebug was active, with no interruption.
Entry to Edebug for displaying something also saves and restores the following data (though some of them are deliberately not restored if an error or quit signal occurs).
Which buffer is current, and the positions of point and the mark in the current buffer, are saved and restored.
The outside window configuration is saved and restored if
edebug-save-windowsis non-nil(see Edebug Options). If the value ofedebug-save-windowsis a list, only the listed windows are saved and restored.The window configuration is not restored on error or quit, but the outside selected window is reselected even on error or quit in case a
save-excursionis active.The window start and horizontal scrolling of the source code buffer are not restored, however, so that the display remains coherent within Edebug.
Saving and restoring the outside window configuration can sometimes change the positions of point in the buffers on which the Lisp program you are debugging operates, especially if your program moves point. If this happens and interferes with your debugging, we recommend to set
edebug-save-windowstonil(see Edebug Options).The value of point in each displayed buffer is saved and restored if
edebug-save-displayed-buffer-pointsis non-nil.The variables
overlay-arrow-positionandoverlay-arrow-stringare saved and restored, so you can safely invoke Edebug from the recursive edit elsewhere in the same buffer.cursor-in-echo-areais locally bound tonilso that the cursor shows up in the window.