Рекурсивный режим отладки 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