From 5d2dd389eb5f8c68afa08814bbab249250d31b68 Mon Sep 17 00:00:00 2001 From: Stas Boukarev Date: Mon, 27 Feb 2017 22:44:15 +0300 Subject: [PATCH] debugger: fix printing deleted lambda variables. --- src/code/debug-int.lisp | 2 +- tests/backtrace.impure.lisp | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp index c49367a4f..95f561d2d 100644 --- a/src/code/debug-int.lisp +++ b/src/code/debug-int.lisp @@ -1535,7 +1535,7 @@ register." (declare (type (simple-array * (*)) args) (simple-vector vars)) (let ((ele (aref args i))) - (cond ((not (symbolp ele)) (svref vars ele)) + (cond ((typep ele 'index) (svref vars ele)) ((eq ele sb!c::debug-info-var-deleted) :deleted) (t (error "malformed arguments description"))))) diff --git a/tests/backtrace.impure.lisp b/tests/backtrace.impure.lisp index 65b8ed885..f7d761701 100644 --- a/tests/backtrace.impure.lisp +++ b/tests/backtrace.impure.lisp @@ -569,3 +569,15 @@ (fact 4) (sb-interpreter::2-arg-* &rest) (fact 5)))) + +(with-test (:name :deleted-args) + (let ((fun (checked-compile `(lambda (&rest ignore) + (declare (ignore ignore)) + (error "x"))))) + (assert (typep (block nil + (handler-bind ((error + (lambda (c) + (return (values c + (sb-debug:list-backtrace)))))) + (funcall fun))) + 'simple-error)))) -- 2.11.4.GIT