Edebug Recursive Edit
When Edebug is entered and actually reads commands from the user, it saves (and later restores) these additional data:
The current match data. See The Match Data.
The variables
last-command,this-command,last-command-event,last-input-event,last-event-frame,last-nonmenu-event, andtrack-mouse. Commands in Edebug do not affect these variables outside of Edebug.Executing commands within Edebug can change the key sequence that would be returned by
this-command-keys, and there is no way to reset the key sequence from Lisp.Edebug cannot save and restore the value of
unread-command-events. Entering Edebug while this variable has a nontrivial value can interfere with execution of the program you are debugging.Complex commands executed while in Edebug are added to the variable
command-history. In rare cases this can alter execution.Within Edebug, the recursion depth appears one deeper than the recursion depth outside Edebug. This is not true of the automatically updated evaluation list window.
standard-outputandstandard-inputare bound tonilby therecursive-edit, but Edebug temporarily restores them during evaluations.The state of keyboard macro definition is saved and restored. While Edebug is active,
defining-kbd-macrois bound toedebug-continue-kbd-macro.