Printing in Edebug
------------------
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 50 if they were `nil'.
(Actually, the variables `edebug-print-length' and `edebug-print-level'
specify the values to use within Edebug.) Note:Output Variables.
- User Option: edebug-print-length
If non-`nil', Edebug binds `print-length' to this value while
printing results. The default value is `50'.
- User Option: edebug-print-level
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 '(x y))
(setcar a a)
Custom printing prints this as `Result: #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.
- User Option: edebug-print-circle
If non-`nil', Edebug binds `print-circle' to this value while
printing results. The default value is `nil'.
Other programs can also use custom printing; see `cust-print.el' for
details.