Печать в 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