From: "Gerd Möllmann" <gerd.moellmann@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: execvy@gmail.com, pipcet@protonmail.com, emacs-devel@gnu.org
Subject: Re: [scratch/igc] 985247b6bee crash on Linux, KDE, Wayland
Date: Thu, 05 Sep 2024 15:37:38 +0200 [thread overview]
Message-ID: <m2r09yw7a5.fsf@pro2.fritz.box> (raw)
In-Reply-To: <8634me447j.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 05 Sep 2024 16:31:28 +0300")
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Cc: Eval EXEC <execvy@gmail.com>, pipcet@protonmail.com, emacs-devel@gnu.org
>> Date: Thu, 05 Sep 2024 15:20:40 +0200
>>
>> >> #23 <signal handler called>
>> >> No symbol table info available.
>> >> #24 0x0000000000692cd8 in fix_frame (f=0x7f5f87885498,
>> >> ss=0x7ffe0290f6a8) at
>> >> /home/exec/Projects/git.savannah.gnu.org/git/emacs/src/igc.c:2068
>> >
>> > This segfault is here:
>> >
>> > if (!FRAME_INITIAL_P (f))
>> > {
>> > /* This is typically stored in the display_info, e.g.
>> > ns_display_info. Check for being NULL anyway. */
>> > Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (f); <<<<<<<<<<<<<<<<<<<<<<<
>> > if (hlinfo)
>> > {
>> > IGC_FIX12_OBJ (ss, &hlinfo->mouse_face_window);
>> > IGC_FIX12_OBJ (ss, &hlinfo->mouse_face_overlay);
>> > IGC_FIX12_RAW (ss, &hlinfo->mouse_face_mouse_frame);
>> > }
>> > }
>> >
>> > This code was added just a few days ago. MOUSE_HL_INFO expands to:
>> >
>> > # define MOUSE_HL_INFO(F) \
>> > (FRAME_WINDOW_P (F) \
>> > ? &FRAME_DISPLAY_INFO(F)->mouse_highlight \
>> > : &(F)->output_data.tty->display_info->mouse_highlight)
>> >
>> > So this looks like FRAME_DISPLAY_INFO(F) is not traced or something?
>>
>> Hm, sesms we have to check for FRAME_OUTPUT_DATA being null for window
>> frames.
>
> Why do you think so? Are we sure FRAME_OUTPUT_DATA is NULL in this
> case (as opposed to a pointer that cannot be dereferenced because it
> was moved)?
I would be 100% sure only if I had it in the debugger :-).
But if you look a bit further down in fix_frame:
if (FRAME_WINDOW_P (f) && FRAME_OUTPUT_DATA (f))
{
struct font **font_ptr = &FRAME_FONT (f);
if (*font_ptr)
IGC_FIX12_PVEC (ss, font_ptr);
Lisp_Object *nle = &FRAME_DISPLAY_INFO (f)->name_list_element;
That means FRAME_OUTPUT_DATA can be null during the lifetime of a
frame. If that happens, we'll crash exactly in that way in the new code
for window frames.
next prev parent reply other threads:[~2024-09-05 13:37 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-05 6:24 [scratch/igc] 985247b6bee crash on Linux, KDE, Wayland Eval EXEC
2024-09-05 7:14 ` Eval EXEC
2024-09-05 8:17 ` Eval EXEC
2024-09-05 7:21 ` Eval EXEC
2024-09-05 8:08 ` Eli Zaretskii
2024-09-05 8:14 ` Eval EXEC
2024-09-05 11:12 ` Pip Cet
2024-09-05 8:24 ` Helmut Eller
2024-09-05 8:28 ` Eval EXEC
2024-09-05 8:34 ` Helmut Eller
2024-09-05 8:37 ` Eval EXEC
2024-09-05 10:44 ` Eval EXEC
2024-09-05 11:01 ` Eli Zaretskii
2024-09-05 11:04 ` Eval EXEC
2024-09-05 11:09 ` Pip Cet
2024-09-05 11:15 ` Eval EXEC
2024-09-05 11:19 ` Pip Cet
2024-09-05 11:26 ` Eval EXEC
2024-09-05 16:04 ` Pip Cet
2024-09-05 16:32 ` Eval EXEC
2024-09-05 11:34 ` Eval EXEC
2024-09-05 11:49 ` Eval EXEC
2024-09-05 12:21 ` Eli Zaretskii
2024-09-05 13:20 ` Gerd Möllmann
2024-09-05 13:31 ` Eli Zaretskii
2024-09-05 13:37 ` Gerd Möllmann [this message]
2024-09-05 13:52 ` Eli Zaretskii
2024-09-05 13:57 ` Gerd Möllmann
2024-09-05 14:33 ` Eli Zaretskii
2024-09-05 14:44 ` Eli Zaretskii
2024-09-05 14:58 ` Gerd Möllmann
2024-09-05 16:19 ` Pip Cet
2024-09-05 16:40 ` Eval EXEC
2024-09-05 16:45 ` Eval EXEC
2024-09-05 16:57 ` Eval EXEC
2024-09-05 16:59 ` Eval EXEC
2024-09-05 17:03 ` Pip Cet
2024-09-05 17:05 ` Eval EXEC
2024-09-05 17:16 ` Gerd Möllmann
2024-09-05 18:46 ` Eli Zaretskii
2024-09-05 19:24 ` Gerd Möllmann
2024-09-05 19:31 ` Eli Zaretskii
2024-09-05 18:48 ` Eli Zaretskii
2024-09-05 18:56 ` Eval EXEC
2024-09-05 19:23 ` Eli Zaretskii
2024-09-05 19:31 ` Eli Zaretskii
2024-09-06 2:15 ` Eval EXEC
2024-09-06 3:10 ` Eval EXEC
2024-09-06 5:58 ` Pip Cet
2024-09-06 6:32 ` Eval EXEC
2024-09-06 7:41 ` Pip Cet
2024-09-06 8:28 ` Eval EXEC
2024-09-06 12:58 ` Pip Cet
2024-09-06 13:14 ` Eval EXEC
2024-09-06 10:57 ` Eli Zaretskii
2024-09-06 13:03 ` Eval EXEC
2024-09-06 19:29 ` Pip Cet
2024-09-07 5:57 ` Eli Zaretskii
2024-09-07 9:05 ` Pip Cet
2024-09-06 6:39 ` Eval EXEC
2024-09-06 7:43 ` Pip Cet
2024-09-07 7:46 ` Eval EXEC
2024-09-07 8:10 ` Pip Cet
2024-09-07 13:20 ` Gerd Möllmann
2024-09-06 6:05 ` Eli Zaretskii
2024-09-06 6:30 ` Pip Cet
2024-09-06 6:34 ` Eval EXEC
2024-09-06 11:49 ` Eli Zaretskii
2024-09-06 13:08 ` Eval EXEC
2024-09-05 19:01 ` Eval EXEC
2024-09-05 17:29 ` Eval EXEC
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2r09yw7a5.fsf@pro2.fritz.box \
--to=gerd.moellmann@gmail.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=execvy@gmail.com \
--cc=pipcet@protonmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).