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.