Subject: bug#22818: 25.1.1 Emacs.app crash ns_compute_glyph_string_overhangs

From: Eli Zaretskii <[email-masked]>
Date: Sat, 19 Nov 2016 20:12:07 +0200

> Date: Sat, 19 Nov 2016 15:51:12 +0000
> From: Alan Third <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> (gdb) p s->face.id
> $1 = 17
> (gdb) p lface_id_to_name[17]
> $2 = 31008
> (gdb) xsymbol
> $3 = (struct Lisp_Symbol *) 0x7ab8
> Cannot access memory at address 0x7ac0
> (gdb) 

So I guess that face was freed or otherwise made invalid.  I thought
we've got rid of these problems, sigh...

If you start "emacs -Q", let Emacs start up, and then look at that
face ID, do you see a valid symbol?  IOW, do this:

  $ gdb ./emacs
  ...
  (gdb) break Fredraw_display
  (gdb) r -Q

Then, after Emacs starts up, type "M-x redraw-display RET", and at the
GDB prompt type:

  (gdb) p lface_id_to_name[17]
  (gdb) xsymbol

What does that show?

And what is the value of next_lface_id at that point?