19.2.12 Буфер трассировки

Edebug может записывать трассировку выполнения, сохраняя ее в буфере с именем *edebug-trace*. Это журнал вызовов и возвратов функций, показывающий имена функций, их аргументы и значения. Чтобы включить запись трассировки, установите edebug-trace в значение, отличное от nil.

Создание буфера трассировки не то же самое, что использование режима трассировки выполнения (см. Режимы выполнения Edebug).

Когда запись трассировки включена, каждый вход и выход функции добавляет строки в буфер трассировки. Запись входа функции состоит из ‘::::{’, за которым следуют имя функции и значения аргументов. Запись выхода функции состоит из ‘::::}’, за которым следуют имя функции и результат функции.

Количество ‘:’ в записи показывает глубину рекурсии. Вы можете использовать фигурные скобки в буфере трассировки, чтобы найти соответствующее начало или конец вызовов функций.

Вы можете настроить запись трассировки для входа и выхода функций, переопределив функции edebug-print-trace-before и edebug-print-trace-after.

Макрос: edebug-tracing string body…

Этот макрос запрашивает дополнительную информацию о трассировке вокруг выполнения форм body. Аргумент string указывает текст, который нужно поместить в буфер трассировки после ‘{’ или ‘}’. Все аргументы вычисляются, и edebug-tracing возвращает значение последней формы в body.

Функция: edebug-trace format-string &rest format-args

Эта функция вставляет текст в буфер трассировки. Она вычисляет текст с помощью (apply 'format format-string format-args). Она также добавляет перевод строки для разделения записей.

edebug-tracing и edebug-trace вставляют строки в буфер трассировки всякий раз, когда они вызываются, даже если Edebug не активен. Добавление текста в буфер трассировки также прокручивает его окно, чтобы показать последние вставленные строки.