Когда программа входит в бесконечный цикл и не возвращает управление, ваша первая проблема — остановить цикл. В большинстве операционных систем вы можете сделать это с помощью C-g, что вызывает quit. См. Выход.
Обычный выход не дает информации о том, почему программа
зациклилась. Чтобы получить больше информации, вы можете установить переменную
debug-on-quit в значение, отличное от nil. Как только вы запустите отладчик
в середине бесконечного цикла, вы можете продолжить работу из отладчика, используя команды пошагового выполнения. Если вы пошагово пройдете весь цикл, вы можете получить достаточно информации для решения проблемы.
Выход с помощью C-g не считается ошибкой, и
debug-on-error не влияет на обработку C-g.
Точно так же, debug-on-quit не влияет на ошибки.
Эта переменная определяет, будет ли вызван отладчик, когда
сигнализируется и не обрабатывается quit. Если debug-on-quit
не равно nil, то отладчик вызывается при каждом выходе (то есть, при нажатии C-g). Если debug-on-quit равно nil (по умолчанию), то отладчик не вызывается при выходе.