[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#8789: 23.3; debug backtrace buffer changes window on step-through

From: Stefan Monnier
Subject: bug#8789: 23.3; debug backtrace buffer changes window on step-through
Date: Wed, 08 Jun 2011 12:29:30 -0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

> I don't have the slightest idea how to fix this though because I don't
> understand why apparently the *backtrace* buffer is removed from display
> in (1), and what the subsequent fragment

>         ;; Kill or at least neuter the backtrace buffer, so that users
>         ;; don't try to execute debugger commands in an invalid context.
>         (if (get-buffer-window debugger-buffer 0)
>             ;; Still visible despite the save-window-excursion?  Maybe it
>             ;; it's in a pop-up frame.  It would be annoying to delete and
>             ;; recreate it every time the debugger stops, so instead we'll
>             ;; erase it (and maybe hide it) but keep it alive.
>             (with-current-buffer debugger-buffer
>               (erase-buffer)
>               (fundamental-mode)
>               (with-selected-window (get-buffer-window debugger-buffer 0)
>                   (when (and (window-dedicated-p (selected-window))
>                              (not debugger-will-be-back))
>                     ;; If the window is not dedicated, burying the buffer
>                     ;; will mean that the frame created for it is left
>                     ;; around showing some random buffer, and next time we
>                     ;; pop to the debugger buffer we'll create yet
>                     ;; another frame.
>                     ;; If debugger-will-be-back is non-nil, the frame
>                     ;; would need to be de-iconified anyway immediately
>                     ;; after when we re-enter the debugger, so iconifying it
>                     ;; here would cause flashing.
>                     ;; Drew Adams is not happy with this: he wants to frame
>                     ;; to be left at the top-level, still working on how
>                     ;; best to do that.
>                     (bury-buffer))))
>           (kill-buffer debugger-buffer))

> is needed for (despite its detailed comment).  So we need help from
> someone familiar with the debug code :-(

I don't use `d' but I can explain the reason for the above code: when we
exit the debugger, I don't want to leave around an empty
fundamental-mode *Debugger* window (which in my case is a dedicated
window in a separate frame), so I bury it.

BTW, I recently changed the above code in `trunk' so that the
kill-buffer is not called if the buffer was pre-existing.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]