Когда Edebug необходимо что-то отобразить (например, в режиме трассировки), он сохраняет текущую конфигурацию окна извне Edebug (см. Конфигурации окон). Когда вы выходите из Edebug, он восстанавливает предыдущую конфигурацию окна.
Emacs перерисовывает только тогда, когда он приостанавливается. Обычно, когда вы продолжаете выполнение, программа снова входит в Edebug в точке останова или после шага, без паузы или считывания ввода между ними. В таких случаях Emacs никогда не получает возможности перерисовать внешнюю конфигурацию. Следовательно, вы видите ту же конфигурацию окна, что и в последний раз, когда Edebug был активен, без перерыва.
Вход в Edebug для отображения чего-либо также сохраняет и восстанавливает следующие данные (хотя некоторые из них намеренно не восстанавливаются, если происходит ошибка или сигнал выхода).
edebug-save-windows не равен nil (см. Параметры Edebug).
Если значение edebug-save-windows является списком, сохраняются и восстанавливаются только перечисленные окна.
Конфигурация окна не восстанавливается при ошибке или выходе, но внешнее выбранное окно повторно выбирается даже при ошибке или выходе в случае активного save-excursion.
Однако не восстанавливаются начальная позиция окна и горизонтальная прокрутка буфера исходного кода, чтобы отображение оставалось согласованным внутри Edebug.
Сохранение и восстановление внешней конфигурации окна иногда может изменять позиции точки в буферах, в которых работает Lisp-программа, которую вы отлаживаете, особенно если ваша программа перемещает точку. Если это происходит и мешает отладке, мы рекомендуем установить edebug-save-windows в nil (см. Параметры Edebug).
edebug-save-displayed-buffer-points не равно nil.
overlay-arrow-position и overlay-arrow-string сохраняются и восстанавливаются, чтобы вы могли безопасно вызывать Edebug из рекурсивного редактирования в другом месте того же буфера.
cursor-in-echo-area локально привязан к nil, чтобы курсор отображался в окне.