Subject: bug#21394: 25.0.50; Segfault when displaying unprintable character in echo area while frames are being created

From: Eli Zaretskii <[email-masked]>
Date: Tue, 01 Sep 2015 21:08:57 +0300

> Date: Tue, 1 Sep 2015 17:33:10 +0000
> From: Pip Cet <[email-masked]>
> 
> This is the full log, including all my backspacing (so the end might be more
> readable in the edited log I've sent to the list). I'm not sure what the size
> limits are for sending attachments to the list.
> [...]
> (gdb) p face
> $1787 = (struct face *) 0x0
> (gdb) p it
> $1788 = (struct it *) 0x7fffffff9de0
> (gdb) p it->face_id
> $1789 = 18
> $1790 = (struct frame *) 0x129f9e0
> (gdb) p it->f->face_cache->used
> $1791 = 15

I see the problematic face always has face ID of 18, and the 'used'
field is always 15 when the segfault strikes.  So I guess the next
step is to make the breakpoint in cache_face conditional on i being
18, and then see whether c->used is set to 19 during that call to
cache_face.  If it does, then a watchpoint (by location) on c->used
should show which code makes the value smaller.