Отладка бесконечных циклов
Когда программа зацикливается бесконечно и не возвращается, вашей первой задачей является остановка цикла. На большинстве операционных систем это можно сделать с помощью C-g, что вызывает выход. См. Выход.
Обычный выход не дает информации о том, почему программа зациклилась. Чтобы получить больше информации, вы можете установить переменную debug-on-quit в значение, отличное от nil. После запуска отладчика в середине бесконечного цикла, можно продолжить работу с отладчиком, используя команды пошагового выполнения. Если вы выполните пошагово весь цикл, вы можете получить достаточно информации для решения проблемы.
Выход с помощью C-g не считается ошибкой, и debug-on-error не влияет на обработку C-g. Аналогично, debug-on-quit не влияет на ошибки.
- Параметр пользователя: debug-on-quit
Эта переменная определяет, вызывается ли отладчик, когда
quitсигнализируется, но не обрабатывается. Еслиdebug-on-quitимеет значение, отличное отnil, то отладчик вызывается всякий раз, когда вы выходите (то есть набираете C-g). Еслиdebug-on-quitимеет значениеnil(по умолчанию), то отладчик не вызывается при выходе.
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/Infinite-Loops.html