[slime-devel] Inspecting return value at breakpoints (patch included)

Hi, I found that when I stop on a breakpoint set with sldb-break-on-return, I am often interested in inspecting the return value. That is printed in the sldb buffer, but not inspectable. Currently I am using the following modifications to signal-breakpoint in the CMUCL case, which make en entry in the breakpoint condition. Then, inspecting the condition yields the information I'm interested in. This is not very beautiful, and it only works with CMUCL, but in case someone can make use of it... later, Utz ----- Index: swank-cmucl.lisp =================================================================== RCS file: /project/slime/cvsroot/slime/swank-cmucl.lisp,v retrieving revision 1.136 diff -u -r1.136 swank-cmucl.lisp --- swank-cmucl.lisp 13 Jan 2005 23:17:02 -0000 1.136 +++ swank-cmucl.lisp 18 Jan 2005 12:29:19 -0000 @@ -1727,7 +1727,8 @@ (c::compiled-debug-function-returns cdfun))) (define-condition breakpoint (simple-condition) - ((message :initarg :message :reader breakpoint.message)) + ((message :initarg :message :reader breakpoint.message) + (values :initarg :values :reader breakpoint.values)) (:report (lambda (c stream) (princ (breakpoint.message c) stream)))) (defimplementation condition-extras ((c breakpoint)) @@ -1740,13 +1741,18 @@ (flet ((brk (fstring &rest args) (let ((msg (apply #'format nil fstring args)) (debug:*stack-top-hint* frame)) - (break 'breakpoint :message msg)))) + (break 'breakpoint :message msg))) + (brk-with-values (values fstring &rest args) + (let ((msg (apply #'format nil fstring args)) + (debug:*stack-top-hint* frame)) + (break 'breakpoint :values values :message msg))) ) (with-struct (di::breakpoint- kind what) breakpoint (case kind (:code-location (case (di:code-location-kind what) ((:single-value-return :known-return :unknown-return) - (brk "Return value: ~{~S ~}" (breakpoint-values breakpoint))) + (brk-with-values (breakpoint-values breakpoint) + "Return value: ~{~S ~}" (breakpoint-values breakpoint))) (t (brk "Breakpoint: ~S ~S" (di:code-location-kind what) ----- -- Utz-Uwe Haus haus@mail.math.uni-magdeburg.de Inst. f. Mathemat. Optim. utz@uuhaus.de Uni Magdeburg PGP keys 1024/6AD23BE1 and 2048/5D0B72A1 GERMANY available via keyservers or email request

Utz-Uwe Haus <haus+slime@merkur.math.uni-magdeburg.de> writes:
Hi,
I found that when I stop on a breakpoint set with sldb-break-on-return, I am often interested in inspecting the return value. That is printed in the sldb buffer, but not inspectable.
Currently I am using the following modifications to signal-breakpoint in the CMUCL case, which make en entry in the breakpoint condition. Then, inspecting the condition yields the information I'm interested in. This is not very beautiful, and it only works with CMUCL, but in case someone can make use of it...
Perhaps not perfect, but better than before. I applied the patch. Thank you. Helmut.
participants (2)
-
Helmut Eller
-
Utz-Uwe Haus