elisp: Edebug Recursive Edit
17.2.14.3 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. Match Data.
• The variables ‘last-command’, ‘this-command’, ‘last-command-event’,
‘last-input-event’, ‘last-event-frame’, ‘last-nonmenu-event’, and
‘track-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-output’ and ‘standard-input’ are bound to ‘nil’ by the
‘recursive-edit’, but Edebug temporarily restores them during
evaluations.
• The state of keyboard macro definition is saved and restored.
While Edebug is active, ‘defining-kbd-macro’ is bound to
‘edebug-continue-kbd-macro’.