Subject: Re: bug#15686: 24.3.50; Face related crash in current trunk

From: Eli Zaretskii <[email-masked]>
Date: Wed, 23 Oct 2013 20:49:55 +0300

> Date: Wed, 23 Oct 2013 18:54:00 +0200
> From: martin rudalics <[email-masked]>
> CC: [email-masked]
> 
>  >>  >> #0  terminate_due_to_signal (sig=22, backtrace_limit=2147483647) at emacs.c:350
>  >>  >> #1  0x01151496 in die (msg=0x146e018 "((((struct vectorlike_header *) ((void *) ((font_object) - (Lisp_Vectorlike)))) ->size) & (PSEUDOVECTOR_FLAG | PVEC_TYPE_MASK)) == (PSEUDOVECTOR_FLAG | (PVEC_FONT << PSEUDOVECTOR_AREA_BITS))", file=0x146d0b0 "xfaces.c", line=5261) at alloc.c:6670
>  >>  >> #2  0x010d7ab0 in realize_default_face (f=0x3c2f770) at xfaces.c:5261
>  >>  >
>  >>  > What kind of object is font_object in frame #2?
>  >>
>  >> What can I do to find out?
>  >
>  > As with any Lisp object:
>  >
>  >   (gdb) p font_object
>  >   (gdb) xtype
> 
> But when (or where) do I do that?

Where -- in the frame where the variable is defined, in this case
frame #2 (as I mentioned above).  When -- when the program crashes, or
(if you succeed to somehow get to the same place in the code before it
crashes) before realize_default_face does whatever it does in line
5261 that causes the assertion violation.