[slime-devel] Re: eval-string bug?

Luke Gorrie luke at bluetail.com
Sat Jan 24 23:00:42 UTC 2004


Luke Gorrie <luke at bluetail.com> writes:

> Oops.. now I see why you split activate and initialize.

Next incarnation. Pushes the "do we need to reinit *sldb*?" logic from
Emacs into Lisp:

  (defvar *sldb-level-in-emacs* nil)

  (defun sldb-loop (level)
    (flet ((activate-emacs ()
             (send-to-emacs (list* :debug *sldb-level*
                                   (debugger-info-for-emacs 0 *sldb-initial-frames*)))
             (setq *sldb-level-in-emacs* level)))
      (activate-emacs)
      (unwind-protect
           (loop (catch 'sldb-loop-catcher
                   (with-simple-restart
                       (abort "Return to sldb level ~D." level)
                     (unless (eql level *sldb-level-in-emacs*)
                       (activate-emacs))
                     (handler-bind ((sldb-condition #'handle-sldb-condition))
                       (read-from-emacs)))))
        (send-to-emacs `(:debug-return ,level)))))

I'll continue trying to beat it into submission, and try to properly
handle e.g. user killing *sldb* at an inconvenient time, tomorrow.






More information about the slime-devel mailing list