Spec-Zone.ru › Elisp

Параметры Edebug

Эти параметры влияют на поведение Edebug:

Пользовательская опция: edebug-setup-hook

Функции, вызываемые перед использованием Edebug. Каждый раз, когда этой переменной присваивается новое значение, Edebug один раз вызывает эти функции, а затем сбрасывает edebug-setup-hook в nil. Это можно использовать для загрузки спецификаций Edebug, связанных с используемым пакетом, но только при использовании Edebug. См. Инструментирование для Edebug.

Пользовательская опция: edebug-all-defs

Если это значение не равно nil, обычное вычисление форм определения, таких как defun и defmacro, инструментирует их для Edebug. Это относится к eval-defun, eval-region и eval-buffer.

Используйте команду M-x edebug-all-defs, чтобы переключить значение этого параметра. См. Инструментирование для Edebug.

Пользовательская опция: edebug-all-forms

Если это значение не равно nil, команды eval-defun, eval-region и eval-buffer инструментируют все формы, даже те, которые ничего не определяют. Это не относится к загрузке и вычислению в минибуфере.

Используйте команду M-x edebug-all-forms, чтобы переключить значение этого параметра. См. Инструментирование для Edebug.

Пользовательская опция: edebug-eval-macro-args

Если это значение не равно nil, все аргументы макросов будут инструментированы в сгенерированном коде. Для любого макроса объявление debug имеет приоритет над этим параметром. Поэтому, чтобы указать исключения для макросов, у которых одни аргументы вычисляются, а другие нет, используйте объявление debug для указания спецификации формы Edebug.

Пользовательская опция: edebug-save-windows

Если это значение не равно nil, Edebug сохраняет и восстанавливает конфигурацию окон. Это занимает некоторое время, поэтому, если программа не зависит от изменений конфигурации окон, лучше установить этой переменной значение nil. Также рекомендуется установить ей значение nil, если значение по умолчанию приводит к тому, что Edebug перезаписывает позиции точки в буферах, задействованных в отлаживаемой программе, при сохранении и восстановлении конфигурации окон; это может произойти, если программа перемещает точку в одном или нескольких таких буферах. В этом случае можно также попробовать настроить параметр edebug-save-displayed-buffer-points, описанный ниже.

Если значение edebug-save-windows является списком, сохраняются и восстанавливаются только указанные в нем окна.

Для интерактивного изменения этой переменной в Edebug можно использовать команду W. См. Обновление отображения Edebug.

Пользовательская опция: edebug-save-displayed-buffer-points

Если это значение не равно nil, Edebug сохраняет и восстанавливает точку во всех отображаемых буферах.

Сохранение и восстановление точки в других буферах необходимо при отладке кода, который меняет точку в буфере, отображаемом в невыбранном окне. Если затем Edebug или пользователь выберет это окно, точка в буфере переместится в положение точки, соответствующее значению окна.

Сохранение и восстановление точки во всех буферах требует значительных затрат, поскольку для этого необходимо дважды выбрать каждое окно, поэтому включайте этот параметр, только если он вам нужен. См. Обновление отображения Edebug.

Пользовательская опция: edebug-initial-mode

Если значение этой переменной не равно 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.

Пользовательская опция: edebug-trace

Если это значение не равно nil, отслеживать вход и выход каждой функции. Вывод трассировки отображается в буфере с именем *edebug-trace*: одна запись о входе в функцию или выходе из нее на строку, с отступом, соответствующим уровню рекурсии.

См. также edebug-tracing в разделе Буфер трассировки.

Пользовательская опция: edebug-test-coverage

Если значение не равно nil, Edebug проверяет покрытие всех отлаживаемых выражений. См. Проверка покрытия.

Пользовательская опция: edebug-continue-kbd-macro

Если значение не равно nil, продолжать определение или выполнение любой клавиатурной макрокоманды, выполняемой за пределами Edebug. Используйте этот параметр осторожно, поскольку такая макрокоманда не отлаживается. См. Режимы выполнения Edebug.

Пользовательская опция: edebug-print-length

Если значение не равно nil, задает значение по умолчанию для print-length при выводе результатов в Edebug. См. Переменные, влияющие на вывод.

Пользовательская опция: edebug-print-level

Если значение не равно nil, задает значение по умолчанию для print-level при выводе результатов в Edebug. См. Переменные, влияющие на вывод.

Пользовательская опция: edebug-print-circle

Если значение не равно nil, задает значение по умолчанию для print-circle при выводе результатов в Edebug. См. Переменные, влияющие на вывод.

Пользовательская опция: edebug-unwrap-results

Если значение не равно nil, Edebug пытается удалить собственные инструментационные формы при отображении результатов выражений. Это имеет значение при отладке макросов, когда результаты выражений сами являются инструментированными выражениями. В качестве весьма искусственного примера предположим, что примерная функция fac была инструментирована, и рассмотрим макрос следующего вида:

(defmacro test () "Edebug example."
  (if (symbol-function 'fac)
      ...))

Если инструментировать макрос test и пошагово выполнить его, то по умолчанию результат вызова symbol-function будет содержать множество форм edebug-after и edebug-before, из-за чего фактический результат может быть трудно увидеть. Если значение edebug-unwrap-results не равно nil, Edebug пытается удалить эти формы из результата.

Пользовательская опция: edebug-on-error

Edebug привязывает debug-on-error к этому значению, если ранее debug-on-error имело значение nil. См. Перехват ошибок.

Пользовательская опция: edebug-on-quit

Edebug привязывает debug-on-quit к этому значению, если ранее debug-on-quit имело значение nil. См. Перехват ошибок.

Если изменить значения edebug-on-error или edebug-on-quit во время работы Edebug, новые значения не будут использоваться, пока Edebug не будет вызван в следующий раз новой командой.

Пользовательская опция: edebug-global-break-condition

Если значение не равно nil, задает выражение, проверяемое в каждой точке останова. Если результат не равен nil, выполнение прерывается. Ошибки игнорируются. См. Глобальное условие останова.

Пользовательская опция: edebug-sit-for-seconds

Количество секунд паузы при достижении точки останова, если режим выполнения — трассировка или продолжение. См. Режимы выполнения Edebug.

Пользовательская опция: edebug-sit-on-break

Определяет, нужно ли приостанавливаться на edebug-sit-for-seconds при достижении точки останова. Установите значение nil, чтобы отключить паузу, или значение, отличное от nil, чтобы разрешить ее.

Пользовательская опция: edebug-behavior-alist

По умолчанию этот список ассоциаций содержит одну запись с ключом edebug и списком из трех функций, являющихся реализациями по умолчанию функций, вставляемых в инструментированный код: edebug-enter, edebug-before и edebug-after. Чтобы изменить поведение Edebug глобально, измените запись по умолчанию.

Поведение Edebug также можно изменять отдельно для каждого определения, добавив в этот список ассоциаций запись с выбранным вами ключом и тремя функциями. Затем установите свойство символа edebug-behavior для инструментированного определения равным ключу новой записи, и для этого определения Edebug будет вызывать новые функции вместо собственных.

Пользовательская опция: edebug-new-definition-function

Функция, выполняемая Edebug после оборачивания тела определения или замыкания. После инициализации собственных данных Edebug вызывает эту функцию с одним аргументом — символом, связанным с определением; это может быть фактически определенный символ или символ, созданный Edebug. Эту функцию можно использовать для установки свойства символа edebug-behavior для каждого определения, инструментированного Edebug.

Пользовательская опция: edebug-after-instrumentation-function

Чтобы проверить или изменить инструментирование Edebug до его использования, присвойте этой переменной функцию, принимающую один аргумент — инструментированную форму верхнего уровня — и возвращающую либо ту же форму, либо заменяющую ее форму, которую Edebug затем использует в качестве окончательного результата инструментирования.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Options.html

Spec-Zone.ru

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