Spec-Zone.ru › Elisp

Рекурсивный режим отладки Edebug

При входе в режим Edebug и фактическом чтении команд от пользователя, сохраняются (и позже восстанавливаются) следующие дополнительные данные:

  • Текущие данные сопоставления. См. Данные сопоставления.
  • Переменные last-command, this-command, last-command-event, last-input-event, last-event-frame, last-nonmenu-event, и track-mouse. Команды в режиме Edebug не влияют на эти переменные вне режима Edebug.

    Выполнение команд внутри Edebug может изменить последовательность клавиш, которая будет возвращена this-command-keys, и нет способа сбросить последовательность клавиш из Lisp.

    Edebug не может сохранить и восстановить значение unread-command-events. Вход в Edebug, когда эта переменная имеет ненулевое значение, может помешать выполнению отлаживаемой программы.

  • Сложные команды, выполняемые во время работы Edebug, добавляются в переменную command-history. В редких случаях это может изменить выполнение.
  • Внутри Edebug глубина рекурсии кажется на один уровень больше, чем глубина рекурсии вне Edebug. Это не относится к автоматически обновляемому окну списка вычислений.
  • standard-output и standard-input привязаны к nil с помощью recursive-edit, но Edebug временно восстанавливает их во время вычислений.
  • Состояние определения макросов клавиатуры сохраняется и восстанавливается. Пока активен Edebug, defining-kbd-macro привязан к edebug-continue-kbd-macro.

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

Spec-Zone.ru

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