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

From: Robert Pluim <[email-masked]>
Date: Thu, 13 Jul 2017 20:17:51 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Robert Pluim <[email-masked]>
>> Date: Thu, 13 Jul 2017 18:42:49 +0200
>> 
>> (gdb) break xdisp.c:21010 if it->glyph_row != 0 && it->glyph_row->used[1] > 0
>> Breakpoint 4 at 0x45baaf: file xdisp.c, line 21010.
>> (gdb) run
>> Starting program: /home/rpluim/repos/emacs-master/src/emacs 
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>> [New Thread 0x7fffe4de5700 (LWP 19567)]
>> [New Thread 0x7fffdffff700 (LWP 19568)]
>> [New Thread 0x7fffdf5f1700 (LWP 19569)]
>> 
>> Thread 1 "emacs" hit Breakpoint 4, maybe_produce_line_number (it=it@entry=0x7fffffff8130) at xdisp.c:21010
>> 21010	  short *u = it->glyph_row ? &it->glyph_row->used[TEXT_AREA] : NULL;
>> 
>> 
>> I was in the process of switching from a non-line-number to a
>> line-number buffer when that hit.
>
> OK, thanks.  What is the value of it->glyph_row->used[TEXT_AREA], and
> what is the backtrace?

(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
#9  0x00000000005c7cf4 in internal_condition_case_1 (bfun=bfun@entry=0x4831d0 <redisplay_window_0>, arg=..., handlers=..., hfun=hfun@entry=0x435960 <redisplay_window_error>) at eval.c:1350
#10 0x000000000043d160 in redisplay_windows (window=...) at xdisp.c:14731
#11 0x000000000043d129 in redisplay_windows (window=...) at xdisp.c:14725
#12 0x000000000046c945 in redisplay_internal () at xdisp.c:14220
#13 0x000000000046eed5 in redisplay () at xdisp.c:13440
#14 0x0000000000545cfb in read_char (commandflag=commandflag@entry=1, map=..., map@entry=XIL(0x35b6253), prev_event=..., used_mouse_menu=used_mouse_menu@entry=0x7fffffffd6cb, end_time=end_time@entry=0x0) at keyboard.c:2484
#15 0x0000000000548ddb in read_key_sequence (keybuf=keybuf@entry=0x7fffffffd7b0, prompt=..., prompt@entry=XIL(0), dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, 
    fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at keyboard.c:9151
#16 0x000000000054b096 in command_loop_1 () at keyboard.c:1372
#17 0x00000000005c7c27 in internal_condition_case (bfun=bfun@entry=0x54adf0 <command_loop_1>, handlers=..., handlers@entry=XIL(0x4fb0), hfun=hfun@entry=0x53e770 <cmd_error>) at eval.c:1326
#18 0x00000000005380dc in command_loop_2 (ignore=..., ignore@entry=XIL(0)) at keyboard.c:1114
#19 0x00000000005c7b6c in internal_catch (tag=..., tag@entry=XIL(0xc1e0), func=func@entry=0x5380c0 <command_loop_2>, arg=..., arg@entry=XIL(0)) at eval.c:1091
#20 0x0000000000538099 in command_loop () at keyboard.c:1093
#21 0x000000000053e296 in recursive_edit_1 () at keyboard.c:699
#22 0x000000000053e613 in Frecursive_edit () at keyboard.c:770
#23 0x000000000041ad4b in main (argc=<optimized out>, argv=0x7fffffffdb58) at emacs.c:1706