summaryrefslogtreecommitdiff
path: root/devdocs/elisp/edebug-display-update.html
blob: a35eaa3093f2102e71b945f94e1e0463c32a6e70 (plain)
1
2
3
4
5
6
7
8
9
10
11
 <h4 class="subsubsection">Edebug Display Update</h4> <p>When Edebug needs to display something (e.g., in trace mode), it saves the current window configuration from outside Edebug (see <a href="window-configurations">Window Configurations</a>). When you exit Edebug, it restores the previous window configuration. </p> <p>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. </p> <p>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). </p> <ul> <li>  Which buffer is current, and the positions of point and the mark in the current buffer, are saved and restored. </li>
<li>  The outside window configuration is saved and restored if <code>edebug-save-windows</code> is non-<code>nil</code> (see <a href="edebug-options">Edebug Options</a>). <p>The window configuration is not restored on error or quit, but the outside selected window <em>is</em> reselected even on error or quit in case a <code>save-excursion</code> is active. If the value of <code>edebug-save-windows</code> is a list, only the listed windows are saved and restored. </p> <p>The window start and horizontal scrolling of the source code buffer are not restored, however, so that the display remains coherent within Edebug. </p> </li>
<li> The value of point in each displayed buffer is saved and restored if <code>edebug-save-displayed-buffer-points</code> is non-<code>nil</code>. </li>
<li> The variables <code>overlay-arrow-position</code> and <code>overlay-arrow-string</code> are saved and restored, so you can safely invoke Edebug from the recursive edit elsewhere in the same buffer. </li>
<li> <code>cursor-in-echo-area</code> is locally bound to <code>nil</code> so that the cursor shows up in the window. </li>
</ul><div class="_attribution">
  <p class="_attribution-p">
    Copyright &copy; 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-Display-Update.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Display-Update.html</a>
  </p>
</div>