> > 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/32gx 0x98e79d8 0x98e79d8: 0xc00000000e008000 0x0000000020e10970 0x98e79e8: 0x0000000003aa20d0 0x0000000003aa1ac0 0x98e79f8: 0x00000000006e9960 0x000000002265f480 0x98e7a08: 0x0000001a0000001a 0x0000400700000060 0x98e7a18: 0x0000000000000000 0x400000000e008000 0x98e7a28: 0x000000001bfdbe90 0x0000000020e10b80 0x98e7a38: 0x000000001bfdb880 0x00000000006e98e0 0x98e7a48: 0x000000001fd792e0 0x0000001a0000001a 0x98e7a58: 0x0000400700000060 0x0000000000000000 0x98e7a68: 0x400000001f000005 0x0000000000000606 0x98e7a78: 0x0000000008ae5654 0x000000001b78fe2d 0x98e7a88: 0x0000000000000012 0x0000000008ae5674 0x98e7a98: 0x400000001f000005 0x0000000000000606 0x98e7aa8: 0x0000000008ae5694 0x000000001c32b8dd 0x98e7ab8: 0x000000000000000e 0x0000000008ae5674 0x98e7ac8: 0x000000000000000e 0x000015554de5d450 (gdb) x/32gx 0x98f1d08 0x98f1d08: 0x8000000000000002 0x0000000000000000 0x98f1d18: 0x400000002300000d 0x0000000000000000 0x98f1d28: 0x0000000003eaec10 0x00000000019e1500 0x98f1d38: 0x0000000000000000 0x000000000000b640 0x98f1d48: 0x0000000000000000 0x0000000000019082 0x98f1d58: 0x0000000000019102 0x000000000000004e 0x98f1d68: 0x0000000000000000 0x0000000000000192 0x98f1d78: 0x0000000000000002 0x0000000000000000 0x98f1d88: 0x400000002300000d 0x0000000000000000 0x98f1d98: 0x0000000003eaec10 0x00000000019e1500 0x98f1da8: 0x0000000000000000 0x000000000000b640 0x98f1db8: 0x0000000000000000 0x0000000000019082 0x98f1dc8: 0x0000000000019102 0x000000000000004e 0x98f1dd8: 0x0000000000000000 0x0000000000000192 0x98f1de8: 0x0000000000000002 0x0000000000000000 0x98f1df8: 0x400000002300000d 0x0000000000000000 (gdb) Let me know if you need anything further! Thanks! George On Sat, May 17, 2025 at 4:52 AM Pip Cet wrote: > "George P" 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 > >