Subject: bug#29726: 25.1; SIGSEGV in find-file

From: Eli Zaretskii <[email-masked]>
Date: Sun, 17 Dec 2017 19:23:32 +0200

[Please keep the bug address on the CC list.]

> From: Marc Munro <[email-masked]>
> Date: Sat, 16 Dec 2017 12:57:18 -0800
> 
> The code that actually brings up the new frame is called from k-
> frame::place-buffer based on the window-list it is provided with from
> k-frame::display-buffer-actor.  Ultimately the code that brings up the
> frame is in k-frame::place-buffer-in-new-frame
> 
> As for the backtrace buffer, yes I think you are right.  In my case the
>  crash occurs some time after the frame is created, but it could easily
> stem from the frame creation itself.
> 
> Try making *Backtrace* a special case that k-frame::display-buffer-
> actor does nothing with, and then display-buffer will presumably bring
> up the backtrace in a suitable window.

OK, I've succeeded in reproducing the crash.  The immediate reason is
clear, but I need to look a bit deeper to understand how did that
reason come into existence.  Stay tuned.

(The problem with your code that caused a Lisp backtrace on my system
is that you assume the outer-window-id frame parameter is non-nil and
is always a number, but that is only true on X, and I'm on MS-Windows.
I replaced outer-window-id with window-id to work around that; maybe
you should do that as well.)