Subject: bug#27668: 26.0.50; Crash with display-line-numbers t

From: Robert Pluim <[email-masked]>
Date: Thu, 13 Jul 2017 21:35:45 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Robert Pluim <[email-masked]>
>> Date: Thu, 13 Jul 2017 20:17:51 +0200
>> 
>> (gdb) p  it->glyph_row->used[TEXT_AREA]
>> $1 = 66
>> 
>> (gdb) bt
>> #0  terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at emacs.c:363
>> #1  0x00000000005a5084 in die (msg=msg@entry=0x6987d8 "pdl->kind == SPECPDL_BACKTRACE", file=file@entry=0x698448 "eval.c", line=line@entry=150) at alloc.c:7348
>> #2  0x0000000000419f3b in backtrace_function (pdl=<optimized out>) at eval.c:150
>> #3  <function called from gdb>
>> #4  maybe_produce_line_number (it=it@entry=0x7fffffff8130) at xdisp.c:21010
>> #5  0x0000000000465365 in display_line (it=it@entry=0x7fffffff8130, cursor_vpos=cursor_vpos@entry=16) at xdisp.c:21225
>> #6  0x00000000004672bd in try_window (window=..., window@entry=XIL(0x146d7d5), pos=..., flags=flags@entry=1) at xdisp.c:17544
>> #7  0x000000000047f9ab in redisplay_window (window=XIL(0x146d7d5), just_this_one_p=just_this_one_p@entry=false) at xdisp.c:16991
>> #8  0x00000000004831fb in redisplay_window_0 (window=..., window@entry=XIL(0x146d7d5)) at xdisp.c:14751
>
> Curiouser and curiouser...
>
> OK, in frame #5, the one in display_line, what do these produce:
>
>   (gdb) p it->current
>   (gdb) pgrowx it->glyph_row

(gdb) p it->current
$2 = {
  pos = {
    charpos = 37180, 
    bytepos = 37180
  }, 
  overlay_string_index = -1, 
  string_pos = {
    charpos = -1, 
    bytepos = -1
  }, 
  dpvec_index = -1
}
(gdb) pgrowx it->glyph_row
TEXT: 66 glyphs
  0    0: CHAR[ ] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=51 MB AVOID
  1   16: CHAR[1] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=51 MB AVOID
  2   32: CHAR[2] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=51 MB AVOID
  3   48: CHAR[6] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=51 MB AVOID
  4   64: CHAR[1] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=51 MB AVOID
  5   80: CHAR[ ] pos=-1 blev=2,btyp=EN w=16 a+d=25+6 face=51 MB AVOID
  6   96: CHAR[ ] pos=37180 blev=0,btyp=L w=16 a+d=25+6 MB
  7  112: CHAR[ ] pos=37181 blev=0,btyp=L w=16 a+d=25+6 MB
  8  128: CHAR[ ] pos=37182 blev=0,btyp=L w=16 a+d=25+6 MB
  9  144: CHAR[ ] pos=37183 blev=0,btyp=L w=16 a+d=25+6 MB
 10  160: CHAR[ ] pos=37184 blev=0,btyp=L w=16 a+d=25+6 MB
 11  176: CHAR[ ] pos=37185 blev=0,btyp=L w=16 a+d=25+6 MB
 12  192: CHAR[/] pos=37186 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 13  208: CHAR[*] pos=37187 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 14  224: CHAR[ ] pos=37188 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 15  240: CHAR[A] pos=37189 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 16  256: CHAR[d] pos=37190 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 17  272: CHAR[j] pos=37191 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 18  288: CHAR[u] pos=37192 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 19  304: CHAR[s] pos=37193 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 20  320: CHAR[t] pos=37194 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 21  336: CHAR[ ] pos=37195 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 22  352: CHAR[c] pos=37196 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 23  368: CHAR[o] pos=37197 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 24  384: CHAR[o] pos=37198 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 25  400: CHAR[r] pos=37199 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 26  416: CHAR[d] pos=37200 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 27  432: CHAR[i] pos=37201 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 28  448: CHAR[n] pos=37202 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
---Type <return> to continue, or q <return> to quit---
 29  464: CHAR[a] pos=37203 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 30  480: CHAR[t] pos=37204 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 31  496: CHAR[e] pos=37205 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 32  512: CHAR[s] pos=37206 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 33  528: CHAR[ ] pos=37207 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 34  544: CHAR[t] pos=37208 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 35  560: CHAR[o] pos=37209 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 36  576: CHAR[ ] pos=37210 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 37  592: CHAR[b] pos=37211 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 38  608: CHAR[e] pos=37212 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 39  624: CHAR[ ] pos=37213 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 40  640: CHAR[r] pos=37214 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 41  656: CHAR[o] pos=37215 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 42  672: CHAR[o] pos=37216 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 43  688: CHAR[t] pos=37217 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 44  704: CHAR[-] pos=37218 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 45  720: CHAR[w] pos=37219 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 46  736: CHAR[i] pos=37220 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 47  752: CHAR[n] pos=37221 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 48  768: CHAR[d] pos=37222 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 49  784: CHAR[o] pos=37223 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 50  800: CHAR[w] pos=37224 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 51  816: CHAR[-] pos=37225 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 52  832: CHAR[r] pos=37226 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 53  848: CHAR[e] pos=37227 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 54  864: CHAR[l] pos=37228 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 55  880: CHAR[a] pos=37229 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 56  896: CHAR[t] pos=37230 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 57  912: CHAR[i] pos=37231 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 58  928: CHAR[v] pos=37232 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
---Type <return> to continue, or q <return> to quit---
 59  944: CHAR[e] pos=37233 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 60  960: CHAR[.] pos=37234 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 61  976: CHAR[ ] pos=37235 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 62  992: CHAR[ ] pos=37236 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 63 1008: CHAR[*] pos=37237 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 64 1024: CHAR[/] pos=37238 blev=0,btyp=L w=16 a+d=25+6 face=50 MB
 65 1040: CHAR[ ] pos=0 blev=0,btyp=B w=16 a+d=25+6 MB
(gdb)