Subject: bug#28710: 27.0.50; eassert failure in maybe_produce_line_number

From: Alex <[email-masked]>
Date: Sun, 08 Oct 2017 01:11:37 -0600

Eli Zaretskii <[email-masked]> writes:

> Thanks, but I need a backtrace at each hit of the watchpoint.  The GDB
> session I posted defined commands to be executed at the watchpoint, so
> such a backtrace should have been executed whenever the watchpoint
> triggered.  Those backtraces is what I need to determine where is the
> enabled_p flag set, because one of those places is unexpected by the
> code.  It's probably the last, but given what you posted, I cannot
> see where did the call to prepare_desired_row originated.
>
> Thanks.

Sorry, it seems that "M-x gdb" doesn't show the output of the commands
for me (is that a bug?), even with "M-x gdb-many-windows". I had to try
gdb on the command line to get the following:

Old value = false
New value = true
prepare_desired_row (w=0x15cac30 <bss_sbrk_buffer+8062480>, row=0x3a48c60, 
    mode_line_p=true) at dispnew.c:1076
1076	      row->reversed_p = rp;
#0  0x000000000041c601 in prepare_desired_row (w=0x15cac30 <bss_sbrk_buffer+8062480>, row=0x3a48c60, mode_line_p=true) at dispnew.c:1076
#1  0x000000000048c268 in display_mode_line (w=0x15cac30 <bss_sbrk_buffer+8062480>, face_id=HEADER_LINE_FACE_ID, format=XIL(0x4472854)) at xdisp.c:23210
#2  0x000000000048c151 in display_mode_lines (w=0x15cac30 <bss_sbrk_buffer+8062480>) at xdisp.c:23177
#3  0x000000000047608e in redisplay_window (window=XIL(0x15cac35), just_this_one_p=false) at xdisp.c:17416
#4  0x000000000046d001 in redisplay_window_0 (window=XIL(0x15cac35))
    at xdisp.c:14799
#5  0x0000000000646f53 in internal_condition_case_1 (bfun=0x46cfbf <redisplay_window_0>, arg=XIL(0x15cac35), handlers=XIL(0xe82d93), hfun=0x46cf87 <redisplay_window_error>) at eval.c:1356
---Type <return> to continue, or q <return> to quit---
#6  0x000000000046cf5c in redisplay_windows (window=XIL(0x15cac35)) at xdisp.c:14779
#7  0x000000000046b8f5 in redisplay_internal () at xdisp.c:14268
#8  0x00000000004690da in redisplay () at xdisp.c:13488
#9  0x0000000000594c9f in read_char (commandflag=1, map=XIL(0x4466753), prev_event=XIL(0), used_mouse_menu=0x7ffcdcb7f3bf, end_time=0x0) at keyboard.c:2480
#10 0x00000000005a4ffd in read_key_sequence (keybuf=0x7ffcdcb7f510, bufsize=30, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false)
    at keyboard.c:9147
#11 0x00000000005918d0 in command_loop_1 () at keyboard.c:1368
#12 0x0000000000646e78 in internal_condition_case (bfun=0x59148c <command_loop_1>, handlers=XIL(0x5220), hfun=0x590a93 <cmd_error>) at eval.c:1332
#13 0x0000000000591066 in command_loop_2 (ignore=XIL(0)) at keyboard.c:1110
#14 0x0000000000646381 in internal_catch (tag=XIL(0xc6c0), func=0x591039 <command_loop_2>, arg=XIL(0)) at eval.c:1097
#15 0x0000000000591004 in command_loop () at keyboard.c:1089
#16 0x000000000059057d in recursive_edit_1 () at keyboard.c:695
#17 0x0000000000590772 in Frecursive_edit () at keyboard.c:766
#18 0x000000000058e31a in main (argc=2, argv=0x7ffcdcb7f9d8) at emacs.c:1713

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)

Thread 1 "emacs" hit Hardware watchpoint 4: -location $1->desired_matrix->rows->enabled_p

Old value = true
New value = false
clear_glyph_matrix_rows (matrix=0x3778570, start=0, end=37) at dispnew.c:693
693	  for (; start < end; ++start)
#0  0x000000000041b026 in clear_glyph_matrix_rows (matrix=0x3778570, start=0, end=37) at dispnew.c:693
#1  0x000000000041b060 in clear_glyph_matrix (matrix=0x3778570) at dispnew.c:712
#2  0x0000000000421a79 in update_window (w=0x15cac30 <bss_sbrk_buffer+8062480>, force_p=true) at dispnew.c:3554
#3  0x0000000000420d9c in update_window_tree (w=0x15cac30 <bss_sbrk_buffer+8062480>, force_p=true) at dispnew.c:3221
#4  0x0000000000420956 in update_frame (f=0x15c9c30 <bss_sbrk_buffer+8058384>, force_p=true, inhibit_hairy_id_p=false) at dispnew.c:3110
#5  0x000000000046bb29 in redisplay_internal () at xdisp.c:14346
#6  0x00000000004690da in redisplay () at xdisp.c:13488
#7  0x0000000000594c9f in read_char (commandflag=1, map=XIL(0x4466753), prev_event=XIL(0), used_mouse_menu=0x7ffcdcb7f3bf, end_time=0x0) at keyboard.c:2480
#8  0x00000000005a4ffd in read_key_sequence (keybuf=0x7ffcdcb7f510, bufsize=30, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false)
    at keyboard.c:9147
#9  0x00000000005918d0 in command_loop_1 () at keyboard.c:1368
#10 0x0000000000646e78 in internal_condition_case (bfun=0x59148c <command_loop_1>, handlers=XIL(0x5220), hfun=0x590a93 <cmd_error>) at eval.c:1332
#11 0x0000000000591066 in command_loop_2 (ignore=XIL(0)) at keyboard.c:1110
#12 0x0000000000646381 in internal_catch (tag=XIL(0xc6c0), func=0x591039 <command_loop_2>, arg=XIL(0)) at eval.c:1097
#13 0x0000000000591004 in command_loop () at keyboard.c:1089
#14 0x000000000059057d in recursive_edit_1 () at keyboard.c:695
#15 0x0000000000590772 in Frecursive_edit () at keyboard.c:766
#16 0x000000000058e31a in main (argc=2, argv=0x7ffcdcb7f9d8) at emacs.c:1713

Lisp Backtrace:
"redisplay_internal (C function)" (0x0)

Thread 1 "emacs" hit Hardware watchpoint 4: -location $1->desired_matrix->rows->enabled_p

Old value = false
New value = true
prepare_desired_row (w=0x15cac30 <bss_sbrk_buffer+8062480>, row=0x3a48c60, mode_line_p=false) at dispnew.c:1076
1076	      row->reversed_p = rp;
#0  0x000000000041c601 in prepare_desired_row (w=0x15cac30 <bss_sbrk_buffer+8062480>, row=0x3a48c60, mode_line_p=false) at dispnew.c:1076
#1  0x0000000000484290 in display_line (it=0x7ffcdcb79f50, cursor_vpos=15) at xdisp.c:21206
#2  0x0000000000477380 in try_window (window=XIL(0x15cac35), pos=..., flags=1) at xdisp.c:17592
---Type <return> to continue, or q <return> to quit---
#3  0x0000000000474866 in redisplay_window (window=XIL(0x15cac35), just_this_one_p=false) at xdisp.c:17039
#4  0x000000000046d001 in redisplay_window_0 (window=XIL(0x15cac35)) at xdisp.c:14799
#5  0x0000000000646f53 in internal_condition_case_1 (bfun=0x46cfbf <redisplay_window_0>, arg=XIL(0x15cac35), handlers=XIL(0xe82d93), hfun=0x46cf87 <redisplay_window_error>) at eval.c:1356
#6  0x000000000046cf5c in redisplay_windows (window=XIL(0x15cac35)) at xdisp.c:14779
#7  0x000000000046b8f5 in redisplay_internal () at xdisp.c:14268
#8  0x000000000046c628 in redisplay_preserve_echo_area (from_where=5) at xdisp.c:14602
#9  0x0000000000594c98 in read_char (commandflag=1, map=XIL(0x448fc93), prev_event=XIL(0), used_mouse_menu=0x7ffcdcb7f3bf, end_time=0x0) at keyboard.c:2478
#10 0x00000000005a4ffd in read_key_sequence (keybuf=0x7ffcdcb7f510, bufsize=30, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false)
    at keyboard.c:9147
#11 0x00000000005918d0 in command_loop_1 () at keyboard.c:1368
#12 0x0000000000646e78 in internal_condition_case (bfun=0x59148c <command_loop_1>, handlers=XIL(0x5220), hfun=0x590a93 <cmd_error>) at eval.c:1332
#13 0x0000000000591066 in command_loop_2 (ignore=XIL(0)) at keyboard.c:1110
#14 0x0000000000646381 in internal_catch (tag=XIL(0xc6c0), func=0x591039 <command_loop_2>, arg=XIL(0)) at eval.c:1097
#15 0x0000000000591004 in command_loop () at keyboard.c:1089
#16 0x000000000059057d in recursive_edit_1 () at keyboard.c:695
#17 0x0000000000590772 in Frecursive_edit () at keyboard.c:766
#18 0x000000000058e31a in main (argc=2, argv=0x7ffcdcb7f9d8) at emacs.c:1713