Next: Trace Buffer, Previous: Evaluation List Buffer, Up: Edebug [Contents][Index]
If 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.
Next: Trace Buffer, Previous: Evaluation List Buffer, Up: Edebug [Contents][Index]