Spec-Zone.ru › Elisp

Отладка бесконечных циклов

Когда программа зацикливается бесконечно и не возвращается, вашей первой задачей является остановка цикла. На большинстве операционных систем это можно сделать с помощью 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

Spec-Zone.ru

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