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

From: Alex <[email-masked]>
Date: Sun, 08 Oct 2017 13:05:45 -0600

Eli Zaretskii <[email-masked]> writes:

> The only difference is the value of cursor_vpos (probably because you
> hit RET on a different line or generally used a different commit?).

Yeah, I'm using a different commit, sorry.

> Then please tell: (a) what was the return value of try_window, as
> printed in response to the 3rd "finish" command, and (b) whether the
> breakpoint set on line 17039 of xdisp.c triggers right after that.  If
> the breakpoint does trigger, please see if the value of the enabled_p
> flag is printed as true or false.

The return value appears to be true. The breakpoint does trigger right
after, and enabled_p is also true:

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

Old value = false
New value = true
prepare_desired_row (w=0x1695d60 <bss_sbrk_buffer+8894272>, row=0x4182860, 
    mode_line_p=true) at dispnew.c:1076
1076	      row->reversed_p = rp;
(gdb) c
Continuing.

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=0x3f524f0, start=0, end=37) at dispnew.c:693
693	  for (; start < end; ++start)
(gdb) c
Continuing.

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

Old value = false
New value = true
prepare_desired_row (w=0x1695d60 <bss_sbrk_buffer+8894272>, row=0x4182860, 
    mode_line_p=false) at dispnew.c:1076
1076	      row->reversed_p = rp;
(gdb) break xdisp.c:17039
Breakpoint 5 at 0x474844: file xdisp.c, line 17039.
(gdb) commands
Type commands for breakpoint(s) 5, one per line.
End with a line saying just "end".
>p w->desired_matrix->rows->enabled_p
>end
(gdb) finish
Run till exit from #0  prepare_desired_row (
    w=0x1695d60 <bss_sbrk_buffer+8894272>, row=0x4182860, mode_line_p=false)
    at dispnew.c:1076
display_line (it=0x7ffefb255dc0, cursor_vpos=25) at xdisp.c:21208
warning: Source file is more recent than executable.
21208	  row->y = it->current_y;
(gdb) finish
Run till exit from #0  display_line (it=0x7ffefb255dc0, cursor_vpos=25)
    at xdisp.c:21208
0x0000000000477380 in try_window (window=XIL(0x1695d65), pos=..., flags=1)
    at xdisp.c:17592
17592	      if (display_line (&it, cursor_vpos))
Value returned is $2 = true
(gdb) finish
Run till exit from #0  0x0000000000477380 in try_window (
    window=XIL(0x1695d65), pos=..., flags=1) at xdisp.c:17592
0x0000000000474866 in redisplay_window (window=XIL(0x1695d65), 
    just_this_one_p=false) at xdisp.c:17039
17039		  if (try_window (window, startp, TRY_WINDOW_CHECK_MARGINS) < 0)
Value returned is $3 = 1
(gdb) continue
Continuing.

Thread 1 "emacs" hit Breakpoint 5, redisplay_window (window=XIL(0x1695d65), just_this_one_p=false) at xdisp.c:17039
17039		  if (try_window (window, startp, TRY_WINDOW_CHECK_MARGINS) < 0)
$4 = true
(gdb) p w->desired_matrix->rows->enabled_p
$5 = true

> Here are some reasons why my configuration could work differently:
>
>   . the default font/font size is different (although I did try 3
>     non-default font sizes as well)
>   . my Magit is not installed and is not byte-compiled, and neither
>     are its dependencies, dash.el and with-editor.el; instead, I load
>     Magit manually, using load-library, from the directory where I
>     downloaded the latest Magit snapshot, before typing the recipe
>     commands

I tried it with a different font(size), without byte-compilation, and
with a magit git snapshot -- all still crashed for me. Have you tried
using MELPA[1] to install magit? Maybe that would work.

Footnotes: 
[1]  https://magit.vc/manual/magit/Installing-from-an-Elpa-Archive.html#Installing-from-an-Elpa-Archive