Spec-Zone.ru › Elisp

Обновление отображения Edebug

Когда 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, чтобы курсор отображался в окне.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Display-Update.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API