Subject: bug#5856: 24.0.50; Crash in redisplay

From: Eli Zaretskii <[email-masked]>
Date: Wed, 07 Apr 2010 23:27:43 +0300

> Date: Wed, 07 Apr 2010 21:11:13 +0200
> From: Jan Djärv <[email-masked]>
> Cc: 
> 
> Sometimes I get a segmentation violation and emacs dies.
> I just managed to catch it in the debugger.  Backtrace below (very long,
> but instructions says to give bt full),
> Let me know if you need more info, I'll keep it in the debugger for a
> couple of days.  This is from trunk, updated and built today (Apr 7, 2010).
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000000044d2f1 in set_cursor_from_row (w=0x1378d60, row=0x1fbf550,
>      matrix=0x18217a0, delta=0, delta_bytes=0, dy=0, dvpos=0)
>      at /home/jhd/src/emacs/fixes/src/xdisp.c:12775
> 12775	  if (!(BUFFERP (glyph->object) && glyph->charpos == pt_old)

Ouch!  My bad, probably.

First, what caused the crash?  I think it's BUFFERP, so please tell
what is glyph->object.

Also, can you tell something about what were you doing at the moment
of the crash?  It looks like you were typing in the minibuffer, is
that correct?

Finally, what does the GDB command "pgrow" print?

Oh, btw: is this an optimized or an unoptimized build?

> (gdb) p *glyph
> $3 = {
>    charpos = 7589819289523352181,
>    object = 8079492959817000301,
>    pixel_width = 26991,
>    ascent = 29806,
>    descent = 29285,
>    voffset = 26463,
>    type = 2,
>    multibyte_p = 0,
>    left_box_line_p = 0,
>    right_box_line_p = 1,
>    overlaps_vertically_p = 1,
>    padding_p = 1,
>    glyph_not_available_p = 0,
>    avoid_cursor_p = 1,
>    resolved_level = 16,
>    bidi_type = 1,

Hmm?.. looks like a garbled glyph structure...