Subject: Re: bug#63711: 30.0.50; Crash in xdisp.c when it->string is 0x0

From: Eli Zaretskii <[email-masked]>
Date: Thu, 25 May 2023 16:35:48 +0300

> From: Thomas Fitzsimmons <[email-masked]>
> Cc: [email-masked]
> Date: Thu, 25 May 2023 09:02:26 -0400
> 
> >   (gdb) p it->sp
> 
> $11 = 0
> 
> >   (gdb) p it->method
> 
> $12 = GET_FROM_BUFFER

These last two values are already a sign of trouble, AFAIU.  We are
trying to find an overlay string where there is none.  But if that is
the case, how come pos->overlay_string_index is non-negative? that
should not happen.

> The session is still open if you want me to check other values.

Do you know what kind of buffer is the current buffer in this case?
The following command will show some of the buffer text near the
position that is examined here, to possibly help you figure out the
buffer:

  (gdb) p (*BYTE_POS_ADDR(pos->pos.bytepos))@100

(Here 100 is the number of bytes to display; feel free to use more if
100 is insufficient.)

Once you do understand what buffer is this, please try to describe the
overlays at buffer position pos->pos.charpos in that buffer, if there
are supposed to be any overlays there.  That position is supposed to
be the first position of a screen line, i.e. the position of the
leftmost character on display in that line.

Thanks.