Subject: Re: bug#78444: 30.1; Crash in GC (vector_marked_p)

From: Pip Cet <[email-masked]>
Date: Sat, 17 May 2025 08:52:51 +0000

"George P" <[email-masked]> writes:

> No worries, happy to provide as much info as I can. Unfortunately, gdb shows XVECTOR as not defined, and I am not sure what the right code to run
> for my platform should be.
>
> (gdb) p *XVECTOR(0x98e79dd)
> No symbol "XVECTOR" in current context.

Can you try this (subtracting 5 from the tagged pointer to get the base
pointer, then printing its memory region):

     x/32gx 0x98e79d8
     x/32gx 0x98f1d08

> (gdb) x/77gx 0x15554f39bca8

Unfortunately, I don't see any overlap between that and the last_marked
entries.  Might have worked with an even larger LAST_MARKED_SIZE.

> (gdb) p terminal_list->display_info
> $1 = {tty = 0x7f3ed10, x = 0x7f3ed10, w32 = 0x7f3ed10, ns = 0x7f3ed10, pgtk = 0x7f3ed10, haiku = 0x7f3ed10, android = 0x7f3ed10}
> (gdb) p *terminal_list->display_info.x
>   Xatom_LINE_NUMBER = 399, Xatom_COLUMN_NUMBER = 400, Xatom_OWNER_OS = 401, Xatom_HOST_NAME = 402, Xatom_USER = 403,
> Xatom_CLASS = 404, Xatom_NAME = 405, Xatom_SAVE_TARGETS = 406, x_focus_frame = 0x13cea00, x_focus_event_frame = 0x13cea00,
> highlight_frame = 0x13cea00, x_pending_autoraise_frame = 0x0, last_mouse_frame = 0x13cea00, last_mouse_glyph_frame = 0x0,
> last_mouse_motion_frame = 0x13cea00,
>   last_mouse_scroll_bar = 0x0, last_user_time = 2180587218, last_mouse_motion_x = 308, last_mouse_motion_y = 1144, last_mouse_glyph = {x =

No dangling pointers here, as far as I can see.

>  Can you say more about that?  Are you running using a remote X server,
>  or some kind of tunnel setup, or is this some sort of WSL or VM setup?
>  It's relevant because remote X sessions have very different timing
>  characteristics, and different code for determining mouse positions is
>  in use.
>
> This is not WSL or VM. I use PUTTY on Windows 10 to connect to a remote Linux host (which is running the emacs daemon), and then I open the
> emacs frame (emacsclient) with X forwarding using Cygwin/X.

Thank you, that makes sense!

Pip