Spec-Zone.ru › Elisp

Использование отладчика

При входе в отладчик он отображает ранее выбранный буфер в одном окне и буфер с именем *Backtrace* в другом окне. Буфер backtrace содержит одну строку для каждого уровня выполнения функции Lisp, который в данный момент происходит. В начале этого буфера находится сообщение, описывающее причину вызова отладчика (например, сообщение об ошибке и связанные данные, если он был вызван из-за ошибки).

Буфер backtrace является только для чтения и использует специальный основной режим, Режим отладчика, в котором буквы определены как команды отладчика. Обычные команды редактирования Emacs доступны; таким образом, вы можете переключаться между окнами для проверки буфера, который редактировался в момент ошибки, переключаться между буферами, посещать файлы или выполнять любые другие виды редактирования. Однако, отладчик — это рекурсивный уровень редактирования (см. Рекурсивное редактирование), и разумно вернуться к буферу backtrace и выйти из отладчика (с помощью команды q), когда вы закончите с ним. Выход из отладчика выходит из рекурсивного редактирования и скрывает буфер backtrace. (Вы можете настроить действие команды q с буфером backtrace, установив переменную debugger-bury-or-kill. Например, установите ее в kill, если вы предпочитаете убить буфер, а не скрыть его. Обратитесь к документации переменной для получения более подробной информации.)

Когда отладчик запущен, переменная debug-on-error временно устанавливается в соответствии с eval-expression-debug-on-error. Если последняя переменная не nil, debug-on-error временно будет установлена в t. Это означает, что любые последующие ошибки, возникающие во время сеанса отладки, будут (по умолчанию) вызывать еще один backtrace. Если это не то, что вы хотите, вы можете установить eval-expression-debug-on-error в значение nil, или установить debug-on-error в значение nil в debugger-mode-hook.

Сам отладчик должен быть запущен в байт-скомпилированном режиме, так как он делает предположения о состоянии интерпретатора Lisp. Эти предположения неверны, если отладчик работает в режиме интерпретации.

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/Using-Debugger.html

Spec-Zone.ru

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