Subject: Re: bug#35273: "Marker does not point anywhere" when reading next article

From: Noam Postavsky <[email-masked]>
Date: Tue, 16 Apr 2019 09:13:10 -0400

Leah Neukirchen <[email-masked]> writes:

>> If you can reproduce it reliably, setting (setq debug-on-signal t) just
>> before might help get a backtrace.
>>
>> If that also doesn't work you could record the backtrace from a
>> signal-hook-function:
>>
>>     (defvar bug-35273-last-backtrace nil)
>>     (defun bug-35273-record-backtrace (err data)[...]

>>     (setq signal-hook-function #'bug-35273-record-backtrace)
>
> These do not work for some reason...

debug-on-signal doesn't work because the debugger is suppressed during
redisplay (to avoid recursion).  I think the signal-hook-function might
have worked (though I forgot to tell you to check the value of
bug-35273-last-backtrace afterwards) but it would only have a single
frame of "redisplay" so it would be useless.

>> Or if you can run under gdb, just set a breakpoint in the C code where
>> that error is raised.
>
> On 27.0.50 (05d53d888):
>
> Breakpoint 1, marker_position (marker=0x555557d6feb5) at marker.c:680
> 680	    error ("Marker does not point anywhere");
> (gdb) bt
> #0  marker_position (marker=0x555557d6feb5) at marker.c:680
> #1  0x000055555567935e in mouse_face_overlay_overlaps (overlay=0x555557d6ff15)
>     at lisp.h:2624
> #2  0x00005555555d395f in note_mouse_highlight (f=f@entry=0x555556001d70, 
>     x=<optimized out>, y=<optimized out>) at xdisp.c:31836

The xdisp.c:31836 at revision 05d53d888 has

		help_echo_pos = charpos;

And neither note_mouse_highlight nor mouse_face_overlay_overlaps call
marker_position, so I'm confused how we got there.  note_mouse_highlight
does call Fmarker_position, but that one doesn't signal an error.

Maybe the debug info is messed up by optimization.  Could you try
recompiling with CFLAGS='-O0 -g3'?