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

From: Thomas Fitzsimmons <[email-masked]>
Date: Thu, 25 May 2023 13:43:03 -0400

Eli Zaretskii <[email-masked]> writes:

>> From: Thomas Fitzsimmons <[email-masked]>
>> Cc: [email-masked]
>> Date: Thu, 25 May 2023 11:25:23 -0400
>> 
>> >   (gdb) prow
>> 
>> y=701 x=0 pwid=1287 a+d=18+5=23 phys=16+4=20 vis=23
>> used=(LMargin=0,Text=113,RMargin=0) Hash=258184180
>> start=0 end=0 ENA MODEL
>> 
>> >   (gdb) pgrow
>> 
>> TEXT: 113 glyphs
>>   0    0: CHAR[ ] str=0xf188ab16[0] blev=0,btyp=L w=11 a+d=18+5 face=1
>>   1   11: CHAR[U] str=0x1ccec60[1] blev=0,btyp=L w=11 a+d=18+5 face=1
>>   2   22: CHAR[:] str=0x4e125d0[0] blev=0,btyp=L w=11 a+d=18+5 face=1
>>   3   33: STRETCH[23+18] str=0x1ccecb8[0] w=33 a+d=18+5 face=1
>>   4   66: CHAR[@] str=0x1ccecb8[0] blev=0,btyp=L w=11 a+d=18+5 face=1
>
> This is the mode line: first sign of trouble.  We are handling a
> mode-line glyph row as if it were a text row.  That cannot lead to
> anything good, ever.
>
>> >   (gdb) p first_reusable_row - start_row
>> 
>> $22 = 15
>> 
>> >   (gdb) p first_row_to_display - start_row
>> 
>> $23 = 30
>
> So we think that the first glyph row to display is screen line 30
> (zero-based).  Is it true that the window was supposed to have only 30
> lines in its body, not 31?

I don't remember, but it does sound plausible that the window displaying
the "js.el" buffer was ~30 lines tall.  I was probably working in a
"split-window-below" scenario.  I don't know whether it was supposed to
be 30 or 31; maybe there some consistency check I could perform in the
GDB session to nail down the expected value?

Thanks,
Thomas