(or (delivery-value :keep-debug-mode)
(<= *delivery-level* 2))
If nil
, the generic function print-object
is redefined to be the ordinary function x-print-object
:
(defun x-print-object (object stream)
(t-print-object object stream))
(defun t-print-object (object stream)
(print-unreadable-object (object stream :identity t)
(if (and (fboundp 'find-class)
(find-class 'undefined-function nil)
(ignore-errors
(typep object 'undefined-function)))
(progn
(write-string "Undefined function " stream)
(prin1 (cell-error-name object) stream))
(progn
(princ (or (ignore-errors (type-of object))
"<Unknown type>")
stream)
(ignore-errors
(when-let (namer (find-symbol "NAME" "CLOS"))
(when-let (name (and (slot-exists-p object namer)
(slot-boundp object namer)
(slot-value object namer)))
(format stream " ~a" name))))))))
You may redefine x-print-object
.
Affected by: :keep-debug-mode