anchor.diff:                (loop
                    for i from 1
                    for name in level
  -                 when (and name
  -                           (eql (incf var-id) id))
  -                 do
  -                   (return-from debugger-read-variable
  -                     (values (svref env-object i) name)))
  +                 when name
  +                 do (push (list name (incf var-id) (cons env-object i) :value) result))
                 (setf env-object (svref env-object 0))))))
         (multiple-value-bind (env-var env-layout)
             (sys.int::debug-info-precise-closure-layout info)
  
positive.code:     (return-address-to-function return-address)))
  
  (defun read-frame-slot (frame slot &optional (repr :value))
    (when (not (integerp slot))
      (return-from read-frame-slot
        :$inaccessible-value$))
    (let ((address (+ (memref-unsigned-byte-64 (second frame) 0)
                      (* (- (1+ slot)) 8))))
      (case repr
        (:value
         (memref-t address))
        (:single-float
         (%integer-as-single-float (memref-unsigned-byte-32 address)))
        (:double-float
         (%integer-as-double-float (memref-unsigned-byte-64 address)))
        (t
         :$inaccessible-value$))))
  
  (defun write-frame-slot (frame slot value &optional (repr :value))
    (when (not (integerp slot))
      (error "Cannot write to this variable. Not on stack."))
    (let ((address (+ (memref-unsigned-byte-64 (second frame) 0)
                      (* (- (1+ slot)) 8))))
      (case repr
        (:value
         (setf (memref-t address) value))
        (:single-float
         (setf (memref-unsigned-byte-32 address) (%single-float-as-integer value)))
        (:double-float
         (setf (memref-unsigned-byte-64 address) (%double-float-as-integer value)))
        (t
         (error "Cannot write to this variable. Unknown representation ~S." repr)))))
  
  (defun show-debug-frame ()
    (multiple-value-bind (function offset)
  
negative.code:             (setf last-layout layout))
         finally (return last-layout))))
  
  (defun frame-locals (frame &key show-hidden)
    (multiple-value-bind (fn offset)
        (function-from-frame frame)
      (let* ((info (function-debug-info fn))
             (var-id 0)
             (result '()))
        (loop
           for (name location repr . plist) in (local-variables-at-offset fn offset)
           do (destructuring-bind (&key hidden)
                  plist
                (when (or show-hidden (not hidden))
                  (push (list name (incf var-id) location repr) result))))
        (multiple-value-bind (env-slot env-layout)
            (sys.int::debug-info-closure-layout info)
          (when env-slot
  