Subject: Re: bug#5856: 24.0.50; Crash in redisplay

From: Eli Zaretskii <[email-masked]>
Date: Thu, 08 Apr 2010 02:49:11 -0400

> Date: Thu, 08 Apr 2010 08:16:13 +0200
> From: Jan Djärv <[email-masked]>
> CC: [email-masked]
> 
> >> 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.
> > 
> 
> (gdb) whatis glyph->object
> type = Lisp_Object
> (gdb) p glyph->object
> $4 = 8079492959817000301
> (gdb) pp glyph->object
> #<INVALID_LISP_OBJECT 0x7020200a3b29656d>

Yep, it's an invalid object, somehow.  I wonder how did that happen...

(Btw, in a crashed session, it is not safe to use pp and pr: they call
functions in Emacs, which could themselves crash, depending on the
extent of damage caused by the original crash.  It is better to use
"xtype" followed by an xSOMETHING command, where SOMETHING depends on
what "xtype" prints; for example, "xbuffer" if "xtype" says the object
is a buffer.)

> It is correct, I did C-x b and typed an x in the minibuffer when the crash 
> occurred.  The contents of the minibuffer is two lines.

And it looks like you are using some optional feature for minibuffer
completion?  IOW, what should I do in "emacs -Q" to see the possible
completions as I see them in the output of "pgrow", viz.

  Switch to buffer (default xsettings.h):  x(settings.c,lwmenu.c,lwmenu.h,fns.c,te

I'd like to try to reproduce this problem.

Thanks.