Параметры отладчика Edebug
Эти параметры влияют на поведение отладчика Edebug:
- Пользовательский параметр: edebug-setup-hook
Функции, которые вызываются перед использованием отладчика Edebug. Каждый раз, когда ему присваивается новое значение, Edebug вызовет эти функции один раз, а затем сбросит
edebug-setup-hookнаnil. Это можно использовать для загрузки спецификаций Edebug, связанных с используемым пакетом, но только при использовании Edebug. См. Инструментирование.
- Пользовательский параметр: edebug-all-defs
-
Если это значение не
nil, обычная обработка определения форм, таких какdefunиdefmacroинструмент их для Edebug. Это относится кeval-defun,eval-region,eval-buffer, иeval-current-buffer.Используйте команду M-x edebug-all-defs для переключения значения этого параметра. См. Инструментирование.
- Пользовательский параметр: edebug-all-forms
-
Если это значение не
nil, командыeval-defun,eval-region,eval-buffer, иeval-current-bufferинструмент все формы, даже те, которые ничего не определяют. Это не относится к загрузке или оценкам в минибуфере.Используйте команду M-x edebug-all-forms для переключения значения этого параметра. См. Инструментирование.
- Пользовательский параметр: edebug-eval-macro-args
Если это значение не
nil, все аргументы макросов будут инструментированы в сгенерированном коде. Для любого макроса объявлениеdebugпереопределяет этот параметр. Таким образом, для указания исключений для макросов, у которых некоторые аргументы оцениваются, а некоторые нет, используйте объявлениеdebugдля указания спецификации формы Edebug.
- Пользовательский параметр: edebug-save-windows
-
Если это значение не
nil, Edebug сохраняет и восстанавливает конфигурацию окна. Это занимает некоторое время, поэтому, если вашей программе неважно, что происходит с конфигурациями окон, лучше установить эту переменную вnil.Если значение является списком, сохраняются и восстанавливаются только указанные окна.
Вы можете использовать команду W в Edebug для интерактивного изменения этой переменной. См. Обновление отображения 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-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Options.html