[slime-devel] Tracing with slime presentations

Luigi Panzeri matley at member.fsf.org
Thu Mar 9 12:43:20 UTC 2006



Hi. i wrote a snippet to do tracing of functions using slime
presentations (thanks to segv for showing me the slime presentation
features and writing present-object) . Obviously this code works only on
sbcl.

(defun present-object (value &optional (stream *error-output*))
  (swank::presenting-object value stream
      (prin1 value stream))
  value)

(defmacro slime-presentation-trace (fun)
  `(trace ,fun
          :print (present-object (let ((args nil))
                                (handler-case
                                    (loop
                                       for i upfrom 0
                                       do (push (sb-debug::arg i) args))
                                  (sb-kernel::index-too-large-error (var) args))))
          :print-after (present-object sb-debug:*trace-values*)))

Maybe an sbcl hacker can really improve and beautify this hack



More information about the slime-devel mailing list