Subject: bug#11417: 24.0.96; infinite looping in xdisp.c

From: Eli Zaretskii <[email-masked]>
Date: Mon, 07 May 2012 20:25:05 +0300

> From:  Leo <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 08 May 2012 00:17:14 +0800
> 
> I run gdb in emacs/src and attach to the process that is hanging. Then
> source .gdbinit and I got:
> 
> DISPLAY = /tmp/launch-VtT4mU/org.x:0
> TERM = xterm-color
> [0] cancel
> [1] all
> 
> Non-debugging symbols:
> [2]    -[CIContext abort]
> [3]    -[CIContextImpl abort]
> [4]    abort
> > Argument required (one or more choice numbers).

You should type 1 or 4 at this point.  If that doesn't help, simply
delete the offending line, viz.

    break abort

> So commands such as xbt, xtype and pgrowx not working properly.

Too bad, I really need to see the glyph row that corresponds to the
problematic screen line, and perhaps the one before and after it
(that's what the pgrowx command does).  Please see if you can provide
that information, after you succeed in reading .gdbinit.

> The rest is as attached. The portion of the line from it2.current
> should show:
> 
> from distutils.core import setup, Extension 

Which part(s) of this come from an overlay string?  This info:

> (gdb) p it2.current
> $7 = {
>   pos = {
>     charpos = 411, 
>     bytepos = 411
>   }, 
>   overlay_string_index = 0, 
>   string_pos = {
>     charpos = 1, 
>     bytepos = 1
>   }, 
>   dpvec_index = -1
> }
> (gdb) p it2.method
> $9 = GET_FROM_STRING

indicates that it2 bumped into a string while iterating over the
buffer.  Once the x* commands work for you, you can display that
string as follows:

  (gdb) p it2.string
  (gdb) xstring

I need to know at which buffer positions there are overlay strings in
the offending line and in its neighbors.

Thanks.