Subject: bug#11367: 24.0.95.1 Crash: Windows 7 using egg

From: Eli Zaretskii <[email-masked]>
Date: Sat, 28 Apr 2012 18:34:04 +0300

> From: Michael Kleehammer <[email-masked]>
> Date: Sat, 28 Apr 2012 09:55:42 -0500
> 
> First, thanks for the helpful response.  Also, I hope the mailing
> recognizes the subject line
> and isn't looking for the reply header.  I apologize in advance if
> this opens a new report.

No new bug report was created.

> (gdb) bt
> #0  0x759c280d in KERNELBASE!DeleteAce () from
> C:\Windows\syswow64\KernelBase.dll
> #1  0x0114f32a in w32_abort () at w32fns.c:7210
> #2  0x011d6e49 in pos_visible_p (w=0x3600800, charpos=462, x=0x88e2f8,
> y=0x88e2f4, rtop=0x88e308, rbot=0x88e304, rowh=0x88e300,
> vpos=0x88e2fc) at xdisp.c:1460

This is an assertion violation here:

		  /* Normally, we would exit the above loop because we
		     found the display element whose character
		     position is CHARPOS.  For the contingency that we
		     didn't, and stopped at the first newline from the
		     display string, move back over the glyphs
		     produced from the string, until we find the
		     rightmost glyph not from the string.  */
		  if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string))
		    {
		      struct glyph *g = it3.glyph_row->glyphs[TEXT_AREA]
					+ it3.glyph_row->used[TEXT_AREA];

		      while (EQ ((g - 1)->object, string))
			{
			  --g;
			  top_x -= g->pixel_width;
			}
  >>>>>>>>>>>>>>      xassert (g < it3.glyph_row->glyphs[TEXT_AREA]
				    + it3.glyph_row->used[TEXT_AREA]);
		    }

Please show the result of the following commands:

 (gdb) frame 2
 (gdb) p g
 (gdb) p it3.glyph_row->glyphs[1] + it3.glyph_row->used[1]
 (gdb) p it3.current
 (gdb) p charpos
 (gdb) p it3.object
 (gdb) p (g-1)->object
 (gdb) pgrowx it3.glyph_row

If the "pgrowx" command doesn't work, load .gdbinit manually and try
again:

 (gdb) source .gdbinit
 (gdb) pgrowx it3.glyph_row

> #40 0x01004baa in Frecursive_edit () at keyboard.c:823
> #41 0x010028b5 in main (argc=1, argv=0x8e2d98) at emacs.c:1715
> (gdb)

There should have been a Lisp-level backtrace after this; didn't you
see it?  Perhaps that's because .gdbinit was not loaded (did you start
GDB from the same directory where you saved .gdbinit?), so try this:

 (gdb) source .gdbinit
 (gdb) xbacktrace

> > Also, is the above reproducible from "emacs -Q"?
> 
> Yes.

Then it would help to have a full recipe starting with "emacs -Q".

Thanks.