4

While using slime+emacs, I'm having a problem when interacting with the debugger: every time that I choose one of the debugger's option, a new window pops up in Emacs.

For example, when evaluating:

(step (progn
        (print 1)
        (print 2)
        (print 3)))

The debugger prints:

Evaluating call:
  (PRINT 1)
With arguments:
  1
   [Condition of type SB-EXT:STEP-FORM-CONDITION]

Restarts:
 0: [STEP-CONTINUE] Resume normal execution
 1: [STEP-OUT] Resume stepping after returning from this function
 2: [STEP-NEXT] Step over call
 3: [STEP-INTO] Step into call
 4: [RETRY] Retry SLIME REPL evaluation request.
 5: [ABORT] Return to sldb level 3.
 --more--

Backtrace:
  0: ((LAMBDA ()))
  1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LET ((SB-IMPL::*STEP-OUT* :MAYBE)) (UNWIND-PROTECT (SB-IMPL::WITH-STEPPING-ENABLED #))) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS ..
  2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (STEP (PROGN (PRINT 1) (PRINT 2) (PRINT 3))) #<NULL-LEXENV>)
  3: (EVAL (STEP (PROGN (PRINT 1) (PRINT 2) (PRINT 3))))
 --more--

So I choose the option 2, STEP-NEXT and it correctly goes to the next form:

Evaluating call:
  (PRINT 2)
With arguments:
  2
   [Condition of type SB-EXT:STEP-FORM-CONDITION]

Restarts:
 0: [STEP-CONTINUE] Resume normal execution
 1: [STEP-OUT] Resume stepping after returning from this function
 2: [STEP-NEXT] Step over call
 3: [STEP-INTO] Step into call
 4: [RETRY] Retry SLIME REPL evaluation request.
 5: [ABORT] Return to sldb level 3.
 --more--

Backtrace:
  0: ((LAMBDA ()))
  1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LET ((SB-IMPL::*STEP-OUT* :MAYBE)) (UNWIND-PROTECT (SB-IMPL::WITH-STEPPING-ENABLED #))) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS ..
  2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (STEP (PROGN (PRINT 1) (PRINT 2) (PRINT 3))) #<NULL-LEXENV>)
  3: (EVAL (STEP (PROGN (PRINT 1) (PRINT 2) (PRINT 3))))
 --more--

But it also splits emacs window, adding a brand new one! After 3 or 4 of these it stops working, with many new windows.

What is causing this?

EDIT: I'm using SBCL-1.2.11 and SLIME 2015-02-19. My Emacs is the latest version of Emacs Live.

EuAndreh
  • 141
  • 2
  • Which Lisp are you using? And which version of SLIME? – nanny May 14 '15 at 20:30
  • Are you using `popwin`? – Tu Do May 15 '15 at 04:30
  • Yes. I'm using Emacs Live, which comes with `popwin` pre-installed. – EuAndreh May 16 '15 at 01:12
  • That's the problem because by default `popwin` managed SBCL buffers by temporary display it in other window instead of reusing your new debug buffer in existing debug window and it keeps stacking up until you have no more screen space to display. Just `C-h v`, choose `popwin:special-display-config` and remove all SBCL buffers there. – Tu Do May 16 '15 at 16:05
  • Thank you very much, that worked well for me. You could post that as an answer. What do you think? – EuAndreh May 19 '15 at 04:41

0 Answers0