Эти параметры влияют на поведение Edebug:
Функции, вызываемые перед использованием Edebug. Каждый раз, когда этому параметру присваивается новое значение, Edebug вызывает эти функции один раз, а затем сбрасывает edebug-setup-hook в nil. Вы можете использовать это для загрузки спецификаций Edebug, связанных с используемым пакетом, но только когда вы также используете Edebug.
См. Инструментирование для Edebug.
Если этот параметр не равен nil, обычное вычисление определяющих форм, таких как defun и defmacro, инструментирует их для Edebug. Это применяется к eval-defun, eval-region и eval-buffer.
Используйте команду M-x edebug-all-defs для переключения значения этого параметра. См. Инструментирование для Edebug.
Если этот параметр не равен nil, команды eval-defun, eval-region и eval-buffer инструментируют все формы, даже те, которые ничего не определяют. Это не применяется к загрузке или вычислениям в минибуфере.
Используйте команду M-x edebug-all-forms для переключения значения этого параметра. См. Инструментирование для Edebug.
Если этот параметр не равен nil, все аргументы макросов будут инструментированы в сгенерированном коде. Для любого макроса объявление debug переопределяет этот параметр. Поэтому для указания исключений для макросов, у которых одни аргументы вычисляются, а другие нет, используйте объявление debug для задания спецификации формы Edebug.
Если этот параметр не равен nil, Edebug сохраняет и восстанавливает конфигурацию окон. Это требует некоторого времени, поэтому если ваша программа не заботится о том, что происходит с конфигурацией окон, лучше установить эту переменную в nil. Мы также рекомендуем установить это значение в nil, если значение по умолчанию приводит к тому, что Edebug перезаписывает позиции точки в буферах, которые задействованы в отлаживаемой программе, в результате сохранения и восстановления конфигурации окон; это может произойти, если ваша программа перемещает точку в одном или нескольких из этих буферов. Другой вариант настройки в этом случае — edebug-save-displayed-buffer-points, описанный ниже.
Если значением edebug-save-windows является список, сохраняются и восстанавливаются только перечисленные окна.
Вы можете использовать команду W в Edebug для интерактивного изменения этой переменной. См. Обновление отображения Edebug.
Если этот параметр не равен nil, Edebug сохраняет и восстанавливает точку во всех отображаемых буферах.
Сохранение и восстановление точки в других буферах необходимо, если вы отлаживаете код, который изменяет точку буфера, отображаемого в невыбранном окне. Если затем Edebug или пользователь выбирает это окно, точка в этом буфере переместится к значению точки окна.
Сохранение и восстановление точки во всех буферах требует больших затрат, поскольку требует выбора каждого окна дважды, поэтому включайте эту возможность только при необходимости. См. Обновление отображения Edebug.
Если эта переменная не равна nil, она задаёт начальный режим выполнения для Edebug при его первом активировании. Возможные значения: step, next, go, Go-nonstop, trace, Trace-fast, continue и Continue-fast.
Значение по умолчанию — step. Эту переменную можно установить интерактивно с помощью C-x C-a C-m (edebug-set-initial-mode). См. Режимы выполнения Edebug.
Если этот параметр не равен nil, трассировать каждый вход и выход из функции. Вывод трассировки отображается в буфере с именем *edebug-trace*, по одной строке на вход или выход из функции, с отступом по уровню рекурсии.
См. также edebug-tracing в Буфер трассировки.
Если не равен nil, Edebug проверяет покрытие всех отлаживаемых выражений. См. Тестирование покрытия.
Если не равен nil, продолжать определение или выполнение любого клавиатурного макроса, который выполняется вне Edebug. Используйте это с осторожностью, так как это не отлаживается. См. Режимы выполнения Edebug.
Если не равен nil, значение по умолчанию для print-length при выводе результатов в Edebug. См. Переменные, влияющие на вывод.
Если не равен nil, значение по умолчанию для print-level при выводе результатов в Edebug. См. Переменные, влияющие на вывод.
Если не равен nil, значение по умолчанию для print-circle при выводе результатов в Edebug. См. Переменные, влияющие на вывод.
Если не равен nil, Edebug пытается удалить все свои собственные инструментирующие конструкции при показе результатов выражений. Это актуально при отладке макросов, когда результаты выражений сами являются инструментированными выражениями. В качестве очень искусственного примера предположим, что пример функции fac был инструментирован, и рассмотрим макрос вида:
(defmacro test () "Пример Edebug."
(if (symbol-function 'fac)
…))
Если вы инструментируете макрос test и проходите по нему пошагово, то по умолчанию результат вызова symbol-function содержит множество форм edebug-after и edebug-before, что может затруднить просмотр фактического результата. Если edebug-unwrap-results не равен nil, Edebug пытается удалить эти формы из результата.
Edebug привязывает debug-on-error к этому значению, если ранее debug-on-error был равен nil. См. Перехват ошибок.
Edebug привязывает debug-on-quit к этому значению, если ранее debug-on-quit был равен nil. См. Перехват ошибок.
Если вы изменяете значения edebug-on-error или edebug-on-quit во время активности Edebug, их значения не будут использоваться до следующего вызова Edebug новой командой.
Если не равен nil, выражение для проверки в каждой точке останова. Если результат не равен nil, то останавливаться. Ошибки игнорируются. См. Глобальное условие останова.
Количество секунд паузы при достижении точки останова и режиме выполнения trace или continue. См. Режимы выполнения Edebug.
Следует ли приостанавливаться на edebug-sit-for-seconds при достижении точки останова. Установите в nil, чтобы предотвратить паузу, или не равным nil, чтобы разрешить её.
По умолчанию этот список содержит одну запись с ключом edebug и список из трёх функций, которые являются реализациями по умолчанию функций, вставляемых в инструментированный код: edebug-enter, edebug-before и edebug-after. Чтобы изменить поведение Edebug глобально, измените запись по умолчанию.
Поведение Edebug также может быть изменено для каждого определения путём добавления записи в этот список с ключом по вашему выбору и тремя функциями. Затем установите свойство символа edebug-behavior инструментированного определения в ключ новой записи, и Edebug будет вызывать новые функции вместо своих собственных для этого определения.
Функция, запускаемая Edebug после того, как он обернёт тело определения или замыкания. После того как Edebug инициализирует свои собственные данные, эта функция вызывается с одним аргументом — символом, связанным с определением, который может быть фактическим определённым символом или сгенерированным Edebug. Эта функция может использоваться для установки свойства символа edebug-behavior для каждого определения, инструментированного Edebug.
Чтобы проверить или изменить инструментирование Edebug перед его использованием, установите эту переменную в функцию, которая принимает один аргумент — инструментированную форму верхнего уровня, и возвращает либо ту же форму, либо заменяющую её, которую Edebug затем будет использовать как окончательный результат инструментирования.