Spec-Zone.ru › Elisp

Печать в Edebug

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

Один из способов справиться с циклической структурой — установить print-length или print-level для обрезки печати. Edebug делает это за вас; он связывает print-length и print-level со значениями переменных edebug-print-length и edebug-print-level (пока у них есть значения, отличные от nil). См. Переменные вывода.

Пользовательский параметр: edebug-print-length

Если значение отлично от nil, Edebug связывает print-length с этим значением во время печати результатов. Значение по умолчанию — 50.

Пользовательский параметр: edebug-print-level

Если значение отлично от nil, Edebug связывает print-level с этим значением во время печати результатов. Значение по умолчанию — 50.

Вы также можете более информативно выводить циклические структуры и структуры, которые разделяют элементы, связав print-circle с отличным от nil значением.

Вот пример кода, который создает циклическую структуру:

(setq a (list 'x 'y))
(setcar a a)

Если print-circle отлично от nil, функции печати (например, prin1) будут выводить a как ‘#1=(#1# y)’. Обозначение ‘#1=’ помещает следующую за ним структуру с меткой ‘1’, а обозначение ‘#1#’ ссылается на ранее помеченную структуру. Это обозначение используется для любых общих элементов списков или векторов.

Пользовательский параметр: edebug-print-circle

Если значение отлично от nil, Edebug связывает print-circle с этим значением во время печати результатов. Значение по умолчанию — t.

Дополнительные сведения о настройке печати см. в разделе Функции вывода.

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/Printing-in-Edebug.html

Spec-Zone.ru

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