[slime-cvs] CVS update: slime/ChangeLog slime/swank-abcl.lisp

Alan Ruttenberg aruttenberg at common-lisp.net
Tue Jan 3 03:58:44 UTC 2006


Update of /project/slime/cvsroot/slime
In directory common-lisp.net:/tmp/cvs-serv23123/slime

Modified Files:
	ChangeLog swank-abcl.lisp 
Log Message:
2005-12-27  Alan Ruttenberg <alanr-l at mumble.net>

	* swank-abcl. (backtrace-as-list-ignoring-swank-calls): remove the
	swank calls from the backtrace to make it easier to use. 
	(frame-locals): Fix a typo that caused entry into the debugger if you tried to
	look at frame locals. Now you don't error out, but you still don't see frame locals
	because I don't know how to get them :(

Date: Tue Jan  3 04:58:43 2006
Author: aruttenberg

Index: slime/ChangeLog
diff -u slime/ChangeLog:1.826 slime/ChangeLog:1.827
--- slime/ChangeLog:1.826	Sat Dec 31 16:08:22 2005
+++ slime/ChangeLog	Tue Jan  3 04:58:39 2006
@@ -1,3 +1,11 @@
+2005-12-27  Alan Ruttenberg <alanr-l at mumble.net>
+
+	* swank-abcl. (backtrace-as-list-ignoring-swank-calls): remove the
+	swank calls from the backtrace to make it easier to use. 
+	(frame-locals): Fix a typo that caused entry into the debugger if you tried to
+	look at frame locals. Now you don't error out, but you still don't see frame locals
+	because I don't know how to get them :(
+
 2005-12-31  Harald Hanche-Olsen <hanche at math.ntnu.no>
 
 	* slime.el (slime-open-stream-to-lisp): Inherit the


Index: slime/swank-abcl.lisp
diff -u slime/swank-abcl.lisp:1.30 slime/swank-abcl.lisp:1.31
--- slime/swank-abcl.lisp:1.30	Sun Nov 13 18:27:40 2005
+++ slime/swank-abcl.lisp	Tue Jan  3 04:58:39 2006
@@ -17,7 +17,7 @@
 
 (defun sys::break (&optional (format-control "BREAK called") 
                    &rest format-arguments)
-  (let ((*saved-backtrace* (sys::backtrace-as-list)))
+  (let ((*saved-backtrace* (backtrace-as-list-ignoring-swank-calls)))
     (with-simple-restart (continue "Return from BREAK.")
       (invoke-debugger
        (sys::%make-condition 'simple-condition
@@ -25,7 +25,6 @@
                                    :format-arguments format-arguments))))
     nil))
 
-
 (defimplementation make-fn-streams (input-fn output-fn)
   (let* ((output (ext:make-slime-output-stream output-fn))
          (input  (ext:make-slime-input-stream input-fn output)))
@@ -191,16 +190,20 @@
 
 (defvar *sldb-topframe*)
 
+(defun backtrace-as-list-ignoring-swank-calls ()
+  (let ((list (ext:backtrace-as-list)))
+    (subseq list (1+ (or (position 'swank::swank-debugger-hook list :key 'car) -1)))))
+
 (defimplementation call-with-debugging-environment (debugger-loop-fn)
-  (let ((*sldb-topframe* (car (ext:backtrace-as-list)) #+nil (excl::int-newest-frame)))
+  (let ((*sldb-topframe* (car (backtrace-as-list-ignoring-swank-calls)) #+nil (excl::int-newest-frame)))
     (funcall debugger-loop-fn)))
 
 (defun nth-frame (index)
-  (nth index (ext:backtrace-as-list)))
+  (nth index (backtrace-as-list-ignoring-swank-calls)))
 
 (defimplementation compute-backtrace (start end)
   (let ((end (or end most-positive-fixnum)))
-    (subseq (ext:backtrace-as-list) start end)))
+    (subseq (backtrace-as-list-ignoring-swank-calls) start end)))
 
 (defimplementation print-frame (frame stream)
   (write-string (string-trim '(#\space #\newline)
@@ -208,7 +211,7 @@
                 stream))
 
 (defimplementation frame-locals (index)
-  `((list :name "??" :id 0 :value "??")))
+  `(,(list :name "??" :id 0 :value "??")))
 
 
 (defimplementation frame-catch-tags (index)




More information about the slime-cvs mailing list