Subject: Re: bug#47244: 28.0.50; SIGSEGV in long-runnning Emacs

From: Michael Welsh Duggan <[email-masked]>
Date: Thu, 08 Apr 2021 10:35:53 -0400

martin rudalics <[email-masked]> writes:

>  > FWIW, I've been trying to do the same and have been similarly
>  > unsuccessful.
>
> I attach a version where I make a shadow copy of Vwindow_list called
> Vwindow_list_2.  The two should behave the same just that Vwindow_list_2
> is never accessed by other code.  So we can put an assertion like
>
>      eassert (!NILP (Fequal (Vwindow_list, Vwindow_list_2)));
>
> anywhere in the code.  I put one in window_list and it should trigger
> the same way as the length check before.
>
> Now if anyone can suggest some strategic positions where to put these
> assertions, I'll be all ears.

I've yet to run this code yet (will do so shortly), but I'd like to
mention that some other debugging I've been doing involving tricky
breakpoint commands is implying that, somehow, list_windows() is getting
called while list_windows() is still running.  I've got a breakpoint
at the beginning of the if clause in window_list() and one at the end,
and it looks like I'm seeing the first one get called twice without the
second getting called inbetween.

-- 
Michael Welsh Duggan
([email-masked])