blob: 29eb63107b405f412d6e94c94a5a6d1e1d5907fd (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
 |  <h4 class="subsubsection">Edebug Recursive Edit</h4> <p>When Edebug is entered and actually reads commands from the user, it saves (and later restores) these additional data: </p> <ul> <li> The current match data. See <a href="match-data">Match Data</a>. </li>
<li> The variables <code>last-command</code>, <code>this-command</code>, <code>last-command-event</code>, <code>last-input-event</code>, <code>last-event-frame</code>, <code>last-nonmenu-event</code>, and <code>track-mouse</code>. Commands in Edebug do not affect these variables outside of Edebug. <p>Executing commands within Edebug can change the key sequence that would be returned by <code>this-command-keys</code>, and there is no way to reset the key sequence from Lisp. </p> <p>Edebug cannot save and restore the value of <code>unread-command-events</code>. Entering Edebug while this variable has a nontrivial value can interfere with execution of the program you are debugging. </p> </li>
<li> Complex commands executed while in Edebug are added to the variable <code>command-history</code>. In rare cases this can alter execution. </li>
<li> 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. </li>
<li> <code>standard-output</code> and <code>standard-input</code> are bound to <code>nil</code> by the <code>recursive-edit</code>, but Edebug temporarily restores them during evaluations. </li>
<li> The state of keyboard macro definition is saved and restored. While Edebug is active, <code>defining-kbd-macro</code> is bound to <code>edebug-continue-kbd-macro</code>. </li>
</ul><div class="_attribution">
  <p class="_attribution-p">
    Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc. <br>Licensed under the GNU GPL license.<br>
    <a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Recursive-Edit.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Recursive-Edit.html</a>
  </p>
</div>
 |