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

From: Alan Third <[email-masked]>
Date: Sat, 19 Nov 2016 19:05:39 +0000

On Sat, Nov 19, 2016 at 08:12:07PM +0200, Eli Zaretskii wrote:
> > 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?

(gdb) p lface_id_to_name[17]
$1 = 31008
(gdb) xsymbol
$2 = (struct Lisp_Symbol *) 0x7ab8
Cannot access memory at address 0x7ac0
(gdb) p next_lface_id
$3 = 84

-- 
Alan Third