:form (let ((direct-file-info (source-info-file-info info)))
(when (eq :lisp (file-info-name direct-file-info))
- (let ((form (elt (file-info-forms direct-file-info) 0)))
- ;; The form COMPILE saves may include gunk
- ;; from %SIMPLE-EVAL -- this gets rid of that.
- (sb!impl::eval-lambda-source-lambda form))))
+ (elt (file-info-forms direct-file-info) 0)))
:function function)))
;;; Given an arbitrary sequence, coerce it to an unsigned vector if
(let* ((name (leaf-debug-name var))
(save-tn (and tn (tn-save-tn tn)))
(kind (and tn (tn-kind tn)))
- (flags 0))
+ (flags 0)
+ (info (lambda-var-arg-info var)))
(declare (type index flags))
(when minimal
(setq flags (logior flags compiled-debug-var-minimal-p))
(setq flags (logior flags compiled-debug-var-save-loc-p)))
(unless (or (zerop id) minimal)
(setq flags (logior flags compiled-debug-var-id-p)))
+ (when info
+ (case (arg-info-kind info)
+ (:more-context
+ (setq flags (logior flags compiled-debug-var-more-context-p)))
+ (:more-count
+ (setq flags (logior flags compiled-debug-var-more-count-p)))))
(vector-push-extend flags buffer)
(unless minimal
(vector-push-extend name buffer)
(level (if #!+sb-dyncount *collect-dynamic-statistics*
#!-sb-dyncount nil
(max actual-level 2)
- actual-level)))
- (cond ((zerop level))
+ actual-level))
+ (toplevel-p (eq :toplevel (compiled-debug-fun-kind dfun))))
+ (cond ((or (zerop level) toplevel-p))
((and (<= level 1)
(let ((od (lambda-optional-dispatch fun)))
(or (not od)
(setf (compiled-debug-fun-arguments dfun)
(compute-args fun var-locs))))
- (if (>= level 2)
+ (if (and (>= level 2) (not toplevel-p))
(multiple-value-bind (blocks tlf-num)
(compute-debug-blocks fun var-locs)
(setf (compiled-debug-fun-tlf-number dfun) tlf-num)