X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fntrace.lisp;h=c5928dc0565e2597290dd284c5a19e687b313664;hb=80f222325e1f677e5cf8de01c6990906fa47f65d;hp=ac3e90d9064ac2d283fe960383cdbaf36fac2f66;hpb=1b778d435773891979dab6d442c19f2b7b62b869;p=sbcl.git diff --git a/src/code/ntrace.lisp b/src/code/ntrace.lisp index ac3e90d..c5928dc 100644 --- a/src/code/ntrace.lisp +++ b/src/code/ntrace.lisp @@ -162,11 +162,13 @@ (let* ((bod (ecase loc ((nil) exp) (:encapsulated - `(flet ((sb-debug:arg (n) - (declare (special arg-list)) - (elt arg-list n))) - (declare (ignorable #'sb-debug:arg)) - ,exp)))) + `(locally (declare (disable-package-locks sb-debug:arg arg-list)) + (flet ((sb-debug:arg (n) + (declare (special arg-list)) + (elt arg-list n))) + (declare (ignorable #'sb-debug:arg) + (enable-package-locks sb-debug:arg arg-list)) + ,exp))))) (fun (coerce `(lambda () ,bod) 'function))) (cons exp (lambda (frame) @@ -204,9 +206,10 @@ (dolist (ele forms) (fresh-line) (print-trace-indentation) - (format t "~@<~S ~_= ~S~:>" (car ele) (funcall (cdr ele) frame)))) + (format t "~@<~S ~_= ~S~:>" (car ele) (funcall (cdr ele) frame)) + (terpri))) -;;; Test a BREAK option, and break if true. +;;; Test a BREAK option, and if true, break. (defun trace-maybe-break (info break where frame) (when (and break (funcall (cdr break) frame)) (sb-di:flush-frames-above frame)