GNU Info

Info Node: (elisp)Printing in Edebug

(elisp)Printing in Edebug


Next: Trace Buffer Prev: Eval List Up: Edebug
Enter node , (file) or (file)node

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.


automatically generated by info2www version 1.2.2.9