[slime-cvs] CVS slime
CVS User heller
heller at common-lisp.net
Wed Jan 9 14:29:12 UTC 2013
Update of /project/slime/cvsroot/slime
In directory tiger.common-lisp.net:/tmp/cvs-serv1521
Modified Files:
ChangeLog swank-sbcl.lisp
Log Message:
* swank-sbcl.lisp (frame-debug-vars): Only include :valid locals.
(*keep-non-valid-locals*): New.
--- /project/slime/cvsroot/slime/ChangeLog 2013/01/07 13:01:28 1.2382
+++ /project/slime/cvsroot/slime/ChangeLog 2013/01/09 14:29:10 1.2383
@@ -1,3 +1,8 @@
+2013-01-09 Helmut Eller <heller at common-lisp.net>
+
+ * swank-sbcl.lisp (frame-debug-vars): Only include :valid locals.
+ (*keep-non-valid-locals*): New.
+
2013-01-07 Helmut Eller <heller at common-lisp.net>
* swank-ccl.lisp (compiler-warning-short-message): Add a method
--- /project/slime/cvsroot/slime/swank-sbcl.lisp 2012/12/03 03:43:16 1.325
+++ /project/slime/cvsroot/slime/swank-sbcl.lisp 2013/01/09 14:29:11 1.326
@@ -1270,9 +1270,18 @@
(code-location-source-location
(sb-di:frame-code-location (nth-frame index)))))
+(defvar *keep-non-valid-locals* nil)
+
(defun frame-debug-vars (frame)
"Return a vector of debug-variables in frame."
- (sb-di::debug-fun-debug-vars (sb-di:frame-debug-fun frame)))
+ (let ((all-vars (sb-di::debug-fun-debug-vars (sb-di:frame-debug-fun frame))))
+ (cond (*keep-non-valid-locals* all-vars)
+ (t (let ((loc (sb-di:frame-code-location frame)))
+ (remove-if (lambda (var)
+ (ecase (sb-di:debug-var-validity var loc)
+ (:valid nil)
+ ((:invalid :unknown) t)))
+ all-vars))))))
(defun debug-var-value (var frame location)
(ecase (sb-di:debug-var-validity var location)
More information about the slime-cvs
mailing list