Next: Trace Buffer, Previous: Evaluation List Buffer, Up: Edebug [Contents][Index]
19.2.11 Printing in EdebugIf an expression in your program produces a value containing circular list structure, you may get an error when Edebug attempts to print it.
One way to cope with circular structure is to set print-length
or print-level
to truncate the printing. Edebug does this for you; it binds print-length
and print-level
to the values of the variables edebug-print-length
and edebug-print-level
(so long as they have non-nil
values). See Variables Affecting Output.
If non-nil
, Edebug binds print-length
to this value while printing results. The default value is 50
.
If non-nil
, Edebug binds print-level
to this value while printing results. The default value is 50
.
You can also print circular structures and structures that share elements more informatively by binding print-circle
to a non-nil
value.
Here is an example of code that creates a circular structure:
(setq a (list 'x 'y)) (setcar a a)
If print-circle
is non-nil
, printing functions (e.g., prin1
) will print a
as ‘#1=(#1# y)’. The ‘#1=’ notation labels the structure that follows it with the label ‘1’, and the ‘#1#’ notation references the previously labeled structure. This notation is used for any shared elements of lists or vectors.
If non-nil
, Edebug binds print-circle
to this value while printing results. The default value is t
.
For further details about how printing can be customized, see see Output Functions.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4