Subject: Re: bug#43700: 28.0.50; Crash creating a second frame

From: Andy Moreton <[email-masked]>
Date: Sat, 3 Oct 2020 15:05:29 +0100

On 03/10/2020 13:45, Eli Zaretskii wrote:
>> Cc: [email-masked]
>> From: Andy Moreton <[email-masked]>
>> Date: Sat, 3 Oct 2020 13:26:09 +0100
>>
>>>     (gdb) watch -l f->face_cache->used if f->face_cache->used == 0
>>>
>>> Then produce a backtrace from any time this watchpoint fires.  That
>>> should show us the culprit.
>>
>> The watchpoint does not fire before the segfault, so there is clearly
>> something wrong with gdb on this platform :-(
> 
> Does the watchpoint fire if you remove the condition?  IOW, do this:
> 
>      (gdb) watch -l f->face_cache->used
> 
> If this works, then you should see also the events where faces are
> added, which will show the 'used' count go up.

As another approach, I have tried building a cygwin 64bit emacs (with 
-O0 and enable_checking) and can reproduce the same problem there.

Unfortunately the watchpoint does not fire in cygwin gdb either, but the 
eassert in FACE_FROM_ID fires before the segfault.

     AndyM