Package: emacs;
Reported by: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Date: Tue, 18 Feb 2025 21:08:02 UTC
Severity: normal
Found in version 31.0.50
To reply to this bug, email your comments to 76406 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Tue, 18 Feb 2025 21:08:02 GMT) Full text and rfc822 format available.Gerd Möllmann <gerd.moellmann <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Tue, 18 Feb 2025 21:08:03 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Cc: martin rudalics <rudalics <at> gmx.at> Subject: 31.0.50; Crash with tty child frames Date: Tue, 18 Feb 2025 22:06:43 +0100
[Message part 1 (text/plain, inline)]
This is a report from Martin on emacs-devel. With master, the attached diff from Martin applied, and having loaded tm.el, as attached, Martin writes: With my latest patch and tty-child-frames.el, doing C-l M-l and C-M-l to get me three child frames, clicking into the yellow frame and trying to change its buffer by clicking at the *Messages* menu item I get Program received signal SIGSEGV, Segmentation fault. 0x000000000054a24e in FACE_FROM_ID (f=0x26306a68, id=11) at ../../src/frame.h:1631 1631 eassert (0 <= id && id < FRAME_FACE_CACHE (f)->used); (gdb) bt> > TTY menus implemented entirely in Lisp. Requires an up-to-date master > containing x-popup-menu-function. > #0 0x000000000054a24e in FACE_FROM_ID (f=0x26306a68, id=11) at ../../src/frame.h:1631 #1 0x000000000054c68d in tty_write_glyphs (f=0x261d3d50, string=0x7fb40c68c950, len=40) at ../../src/term.c:793 #2 0x0000000000557e29 in write_glyphs (f=0x261d3d50, string=0x7fb40c68c6e8, len=40) at ../../src/terminal.c:182 #3 0x000000000042de40 in write_row (f=0x261d3d50, vpos=11, updating_menu_p=false) at ../../src/dispnew.c:6114 #4 0x000000000042be22 in write_matrix (f=0x261d3d50, inhibit_id_p=true, updating_menu_p=false) at ../../src/dispnew.c:5706 #5 0x0000000000427661 in combine_updates_for_frame (f=0x261d3d50, inhibit_scrolling=true) at ../../src/dispnew.c:4009 #6 0x000000000047b36c in echo_area_display (update_frame_p=true) at ../../src/xdisp.c:13560 #7 0x0000000000476da6 in message3_nolog (m=XIL(0)) at ../../src/xdisp.c:12458 #8 0x0000000000476a62 in message3 (m=XIL(0)) at ../../src/xdisp.c:12388 #9 0x0000000000476e1c in message1 (m=0x0) at ../../src/xdisp.c:12477 #10 0x00000000006c39e6 in Fmessage (nargs=1, args=0x7fb40bdff278) at ../../src/editfns.c:3122 #11 0x00000000006d55a7 in funcall_subr (subr=0x8bf4a0 <Smessage>, numargs=1, args=0x7fb40bdff278) at ../../src/eval.c:3161 #12 0x000000000073363e in exec_byte_code (fun=XIL(0x7fb40c8c8c65), args_template=1025, nargs=4, args=0x7ffe48fde4a8) at ../../src/bytecode.c:812 #13 0x00000000006d59c0 in funcall_lambda (fun=XIL(0x7fb40c8c8c65), nargs=4, arg_vector=0x7ffe48fde488) at ../../src/eval.c:3229 #14 0x00000000006d4d5c in funcall_general (fun=XIL(0x7fb40c8c8c65), numargs=4, args=0x7ffe48fde488) at ../../src/eval.c:3021 #15 0x00000000006d501d in Ffuncall (nargs=5, args=0x7ffe48fde480) at ../../src/eval.c:3070 #16 0x00000000006d44b0 in Fapply (nargs=2, args=0x7ffe48fde540) at ../../src/eval.c:2742 #17 0x00000000006d3941 in eval_sub (form=XIL(0x7fb40c6426a3)) at ../../src/eval.c:2547 #18 0x00000000006ce5ec in Fprogn (body=XIL(0)) at ../../src/eval.c:439 #19 0x00000000006d0184 in Flet (args=XIL(0x7fb40c640453)) at ../../src/eval.c:1105 #20 0x00000000006d375d in eval_sub (form=XIL(0x7fb40c640443)) at ../../src/eval.c:2526 #21 0x00000000006ce5ec in Fprogn (body=XIL(0)) at ../../src/eval.c:439 #22 0x00000000006d5ecf in funcall_lambda (fun=XIL(0x262dacd5), nargs=5, arg_vector=0x7ffe48fdea08) at ../../src/eval.c:3327 #23 0x00000000006d4d5c in funcall_general (fun=XIL(0x262dacd5), numargs=5, args=0x7ffe48fdea08) at ../../src/eval.c:3021 #24 0x00000000006d501d in Ffuncall (nargs=6, args=0x7ffe48fdea00) at ../../src/eval.c:3070 #25 0x00000000006d44b0 in Fapply (nargs=3, args=0x7fb40bdff1e0) at ../../src/eval.c:2742 #26 0x00000000006d55a7 in funcall_subr (subr=0x8c0060 <Sapply>, numargs=3, args=0x7fb40bdff1e0) at ../../src/eval.c:3161 #27 0x000000000073363e in exec_byte_code (fun=XIL(0x26298e35), args_template=128, nargs=4, args=0x7fb40bdff180) at ../../src/bytecode.c:812 #28 0x00000000006d59c0 in funcall_lambda (fun=XIL(0x7fb40cb532c5), nargs=1, arg_vector=0x7ffe48fdf2f0) at ../../src/eval.c:3229 #29 0x00000000006d4d5c in funcall_general (fun=XIL(0x7fb40cb532c5), numargs=1, args=0x7ffe48fdf2f0) at ../../src/eval.c:3021 #30 0x00000000006d501d in Ffuncall (nargs=2, args=0x7ffe48fdf2e8) at ../../src/eval.c:3070 #31 0x00000000006c9728 in Ffuncall_interactively (nargs=2, args=0x7ffe48fdf2e8) at ../../src/callint.c:250 #32 0x00000000006d55a7 in funcall_subr (subr=0x8bf720 <Sfuncall_interactively>, numargs=2, args=0x7ffe48fdf2e8) at ../../src/eval.c:3161 #33 0x00000000006d4d10 in funcall_general (fun=XIL(0x8bf725), numargs=2, args=0x7ffe48fdf2e8) at ../../src/eval.c:3017 #34 0x00000000006d501d in Ffuncall (nargs=3, args=0x7ffe48fdf2e0) at ../../src/eval.c:3070 #35 0x00000000006cbd58 in Fcall_interactively (function=XIL(0x7fb40c214010), record_flag=XIL(0), keys=XIL(0x7fb40cfc7cb5)) at ../../src/callint.c:789 #36 0x00000000006d53a7 in funcall_subr (subr=0x8bf760 <Scall_interactively>, numargs=3, args=0x7fb40bdff070) at ../../src/eval.c:3142 #37 0x000000000073363e in exec_byte_code (fun=XIL(0x7fb40cfe60ed), args_template=1025, nargs=1, args=0x7ffe48fdff20) at ../../src/bytecode.c:812 #38 0x00000000006d59c0 in funcall_lambda (fun=XIL(0x7fb40cfe60ed), nargs=1, arg_vector=0x7ffe48fdff18) at ../../src/eval.c:3229 #39 0x00000000006d4d5c in funcall_general (fun=XIL(0x7fb40cfe60ed), numargs=1, args=0x7ffe48fdff18) at ../../src/eval.c:3021 #40 0x00000000006d501d in Ffuncall (nargs=2, args=0x7ffe48fdff10) at ../../src/eval.c:3070 #41 0x00000000005f3b32 in command_loop_1 () at ../../src/keyboard.c:1545 #42 0x00000000006d117b in internal_condition_case (bfun=0x5f32c1 <command_loop_1>, handlers=XIL(0x90), hfun=0x5f2743 <cmd_error>) at ../../src/eval.c:1602 #43 0x00000000005f2e88 in command_loop_2 (handlers=XIL(0x90)) at ../../src/keyboard.c:1163 #44 0x00000000006d05e5 in internal_catch (tag=XIL(0x12390), func=0x5f2e5e <command_loop_2>, arg=XIL(0x90)) at ../../src/eval.c:1282 #45 0x00000000005f2e1a in command_loop () at ../../src/keyboard.c:1141 #46 0x00000000005f21e5 in recursive_edit_1 () at ../../src/keyboard.c:749 #47 0x00000000005f2411 in Frecursive_edit () at ../../src/keyboard.c:832 #48 0x00000000005edbf3 in main (argc=5, argv=0x7ffe48fe0388) at ../../src/emacs.c:2558 Lisp Backtrace: "message" (0xbdff278) 0xc8c8c60 PVEC_CLOSURE "apply" (0x48fde540) "let" (0x48fde830) "tm--around-popup-menu" (0x48fdea08) "apply" (0xbdff1e0) "popup-menu" (0xbdff180) "menu-bar-open" (0xbdff110) "menu-bar-open-mouse" (0x48fdf2f0) "funcall-interactively" (0x48fdf2e8) "call-interactively" (0xbdff070) "command-execute" (0x48fdff18) martin
[child-frame-menubar-drag-resize.diff (text/x-patch, attachment)]
[tm.el (application/emacs-lisp, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Wed, 19 Feb 2025 05:02:02 GMT) Full text and rfc822 format available.Message #8 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: 76406 <at> debbugs.gnu.org Cc: martin rudalics <rudalics <at> gmx.at> Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Wed, 19 Feb 2025 06:01:30 +0100
[Message part 1 (text/plain, inline)]
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > With my latest patch and tty-child-frames.el, doing C-l M-l and C-M-l to > get me three child frames, clicking into the yellow frame and trying to > change its buffer by clicking at the *Messages* menu item I get > > Program received signal SIGSEGV, Segmentation fault. > 0x000000000054a24e in FACE_FROM_ID (f=0x26306a68, id=11) at ../../src/frame.h:1631 > 1631 eassert (0 <= id && id < FRAME_FACE_CACHE (f)->used); > (gdb) bt> Hi Martin, I need some more info because I can't reproduce this yet. I've build master 849475695a1136ffaefd26c72616ec319da45119 plus your diff on top, which I have attached to the bug report. The build is with checking, --enable-checking=yes,glyphs. Complete config: #define EMACS_CONFIG_OPTIONS "--without-ns --cache-file /var/folders/1d/k_6t25f94sl83szqbf8gpkrh0000gn/T//config.cache.martin --enable-checking=yes,glyphs --with-native-compilation=no CC=clang 'CFLAGS=-Wgnu-imaginary-constant -Wunused-result -g -g -O0 -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks -Wno-ignored-attributes -Wno-flag-enum -Wno-missing-method-return-type -Wno-variadic-macros -Wno-strict-prototypes -Wno-availability -Wno-nullability-completeness' --prefix=/Users/gerd/.local" I'm using this as the file to make child frames:
[run-emacs.el (application/emacs-lisp, attachment)]
[Message part 3 (text/plain, inline)]
The only change compared to your original should be that I load tm.el, activate tm-menu-mode, and use M-g <n> key bindings instead of C-l and so on. With this, emacs -Q, I - open tty-1, tty-2, tty-3 in that order - then I click in the yellow frame - click on the Buffer menu in the menu-bar - click on *Messages*. Effect is a bit strange, some complaints about mouse bindings in the root frame, but no assertion. So I guess I'm missing something important. Any ideas?
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Wed, 19 Feb 2025 05:25:02 GMT) Full text and rfc822 format available.Message #11 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: 76406 <at> debbugs.gnu.org Cc: martin rudalics <rudalics <at> gmx.at> Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Wed, 19 Feb 2025 06:23:57 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > I've build master 849475695a1136ffaefd26c72616ec319da45119 Correction: 20edecd21f777848d51b1b892c4ed6192a088fc7
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Wed, 19 Feb 2025 09:00:02 GMT) Full text and rfc822 format available.Message #14 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: martin rudalics <rudalics <at> gmx.at> To: Gerd Möllmann <gerd.moellmann <at> gmail.com>, 76406 <at> debbugs.gnu.org Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Wed, 19 Feb 2025 09:58:46 +0100
[Message part 1 (text/plain, inline)]
> I've build master 849475695a1136ffaefd26c72616ec319da45119 plus your > diff on top, which I have attached to the bug report. The build is with > checking, --enable-checking=yes,glyphs. Complete config: > > #define EMACS_CONFIG_OPTIONS "--without-ns --cache-file /var/folders/1d/k_6t25f94sl83szqbf8gpkrh0000gn/T//config.cache.martin --enable-checking=yes,glyphs --with-native-compilation=no CC=clang 'CFLAGS=-Wgnu-imaginary-constant -Wunused-result -g -g -O0 -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks -Wno-ignored-attributes -Wno-flag-enum -Wno-missing-method-return-type -Wno-variadic-macros -Wno-strict-prototypes -Wno-availability -Wno-nullability-completeness' --prefix=/Users/gerd/.local" > > I'm using this as the file to make child frames: > > > > The only change compared to your original should be that I load tm.el, > activate tm-menu-mode, and use M-g <n> key bindings instead of C-l and > so on. > > With this, emacs -Q, I > > - open tty-1, tty-2, tty-3 in that order > > - then I click in the yellow frame > > - click on the Buffer menu in the menu-bar > > - click on *Messages*. > > Effect is a bit strange, some complaints about mouse bindings in the > root frame, but no assertion. > > So I guess I'm missing something important. Any ideas? Not really: I do the same but positioned the yellow frame more to the left so that it is not obscured by the other two child frames. Both tty-child-frames.el ("/home/martin/temp/tm.el" is my location of your tm.el) and my patch are attached. I also attach a screenshot immediately before clicking on the Buffer menu. A complete transcript of the debugging session is below. This is with master after commit 0c8abe8bb5072c46a93585cb325c249f85f3d9c2 Author: Jared Finder <jared <at> finder.org> Date: Wed Feb 19 09:41:44 2025 +0200 built with "CFLAGS='-O0 -g3 -no-pie -Wno-missing-braces' ../configure --with-gif=ifavailable --with-tiff=ifavailable --with-gnutls=no --without-pop --enable-checking='yes,glyphs,structs' --enable-check-lisp-object-type=yes" martin Current directory is /home/martin/emacs-git/trunk/obj-gtk/src/ GNU gdb (Debian 13.1-3) 13.1 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /home/martin/emacs-git/trunk/obj-gtk/src/emacs... SIGINT is used by the debugger. Are you sure you want to change it? (y or n) [answered Y; input not from terminal] DISPLAY = :0.0 TERM = dumb Breakpoint 2 at 0x5a2896: file ../../src/xterm.c, line 27098. (gdb) attach 6872 Attaching to program: /home/martin/emacs-git/trunk/obj-gtk/src/emacs, process 6872 (gdb) Reading symbols from /lib/x86_64-linux-gnu/libtiff.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libtiff.so.6) Reading symbols from /lib/x86_64-linux-gnu/libjpeg.so.62... (No debugging symbols found in /lib/x86_64-linux-gnu/libjpeg.so.62) Reading symbols from /lib/x86_64-linux-gnu/libpng16.so.16... (No debugging symbols found in /lib/x86_64-linux-gnu/libpng16.so.16) Reading symbols from /lib/x86_64-linux-gnu/libgif.so.7... (No debugging symbols found in /lib/x86_64-linux-gnu/libgif.so.7) Reading symbols from /lib/x86_64-linux-gnu/libwebpdemux.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/libwebpdemux.so.2) Reading symbols from /lib/x86_64-linux-gnu/libwebp.so.7... (No debugging symbols found in /lib/x86_64-linux-gnu/libwebp.so.7) Reading symbols from /lib/x86_64-linux-gnu/libgtk-3.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgtk-3.so.0) Reading symbols from /lib/x86_64-linux-gnu/libgdk-3.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgdk-3.so.0) Reading symbols from /lib/x86_64-linux-gnu/libz.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libz.so.1) Reading symbols from /lib/x86_64-linux-gnu/libpango-1.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libpango-1.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libharfbuzz.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libharfbuzz.so.0) Reading symbols from /lib/x86_64-linux-gnu/libcairo.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/libcairo.so.2) Reading symbols from /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libgio-2.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgio-2.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libgobject-2.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgobject-2.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libglib-2.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libglib-2.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libSM.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libSM.so.6) Reading symbols from /lib/x86_64-linux-gnu/libICE.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libICE.so.6) Reading symbols from /lib/x86_64-linux-gnu/libX11.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libX11.so.6) Reading symbols from /lib/x86_64-linux-gnu/libX11-xcb.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libX11-xcb.so.1) Reading symbols from /lib/x86_64-linux-gnu/libxcb.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libxcb.so.1) Reading symbols from /lib/x86_64-linux-gnu/libXrender.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libXrender.so.1) Reading symbols from /lib/x86_64-linux-gnu/librsvg-2.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/librsvg-2.so.2) Reading symbols from /lib/x86_64-linux-gnu/libm.so.6... Reading symbols from /usr/lib/debug/.build-id/6d/201df2cb50847f0ed42da4158c3a608d578f03.debug... Reading symbols from /lib/x86_64-linux-gnu/libdbus-1.so.3... (No debugging symbols found in /lib/x86_64-linux-gnu/libdbus-1.so.3) Reading symbols from /lib/x86_64-linux-gnu/libXrandr.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/libXrandr.so.2) Reading symbols from /lib/x86_64-linux-gnu/libXinerama.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libXinerama.so.1) Reading symbols from /lib/x86_64-linux-gnu/libXfixes.so.3... (No debugging symbols found in /lib/x86_64-linux-gnu/libXfixes.so.3) Reading symbols from /lib/x86_64-linux-gnu/libXext.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libXext.so.6) Reading symbols from /lib/x86_64-linux-gnu/libtinfo.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libtinfo.so.6) Reading symbols from /lib/x86_64-linux-gnu/libselinux.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libselinux.so.1) Reading symbols from /lib/x86_64-linux-gnu/libfreetype.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libfreetype.so.6) Reading symbols from /lib/x86_64-linux-gnu/libfontconfig.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libfontconfig.so.1) Reading symbols from /lib/x86_64-linux-gnu/libXi.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libXi.so.6) Reading symbols from /lib/x86_64-linux-gnu/libXcomposite.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libXcomposite.so.1) Reading symbols from /lib/x86_64-linux-gnu/libxcb-shape.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libxcb-shape.so.0) Reading symbols from /lib/x86_64-linux-gnu/libc.so.6... Reading symbols from /usr/lib/debug/.build-id/c0/47672cae7964324658491e7dee26748ae5d2f8.debug... Reading symbols from /lib/x86_64-linux-gnu/libzstd.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libzstd.so.1) Reading symbols from /lib/x86_64-linux-gnu/liblzma.so.5... (No debugging symbols found in /lib/x86_64-linux-gnu/liblzma.so.5) Reading symbols from /lib/x86_64-linux-gnu/libLerc.so.4... (No debugging symbols found in /lib/x86_64-linux-gnu/libLerc.so.4) Reading symbols from /lib/x86_64-linux-gnu/libjbig.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libjbig.so.0) Reading symbols from /lib/x86_64-linux-gnu/libdeflate.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libdeflate.so.0) Reading symbols from /lib64/ld-linux-x86-64.so.2... Reading symbols from /usr/lib/debug/.build-id/f4/bc47db467906580a47640e01e6d901e2642a7b.debug... Reading symbols from /lib/x86_64-linux-gnu/libgmodule-2.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgmodule-2.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libfribidi.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libfribidi.so.0) Reading symbols from /lib/x86_64-linux-gnu/libcairo-gobject.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/libcairo-gobject.so.2) Reading symbols from /lib/x86_64-linux-gnu/libatk-1.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libatk-1.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libepoxy.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libepoxy.so.0) Reading symbols from /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0) Reading symbols from /lib/x86_64-linux-gnu/libxkbcommon.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libxkbcommon.so.0) Reading symbols from /lib/x86_64-linux-gnu/libwayland-client.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libwayland-client.so.0) Reading symbols from /lib/x86_64-linux-gnu/libwayland-cursor.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libwayland-cursor.so.0) Reading symbols from /lib/x86_64-linux-gnu/libwayland-egl.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libwayland-egl.so.1) Reading symbols from /lib/x86_64-linux-gnu/libXcursor.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libXcursor.so.1) Reading symbols from /lib/x86_64-linux-gnu/libXdamage.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libXdamage.so.1) Reading symbols from /lib/x86_64-linux-gnu/libthai.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libthai.so.0) Reading symbols from /lib/x86_64-linux-gnu/libgraphite2.so.3... (No debugging symbols found in /lib/x86_64-linux-gnu/libgraphite2.so.3) Reading symbols from /lib/x86_64-linux-gnu/libpixman-1.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libpixman-1.so.0) Reading symbols from /lib/x86_64-linux-gnu/libxcb-shm.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libxcb-shm.so.0) Reading symbols from /lib/x86_64-linux-gnu/libxcb-render.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libxcb-render.so.0) Reading symbols from /lib/x86_64-linux-gnu/libmount.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libmount.so.1) Reading symbols from /lib/x86_64-linux-gnu/libffi.so.8... (No debugging symbols found in /lib/x86_64-linux-gnu/libffi.so.8) Reading symbols from /lib/x86_64-linux-gnu/libpcre2-8.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libpcre2-8.so.0) Reading symbols from /lib/x86_64-linux-gnu/libuuid.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libuuid.so.1) Reading symbols from /lib/x86_64-linux-gnu/libbsd.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libbsd.so.0) Reading symbols from /lib/x86_64-linux-gnu/libXau.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libXau.so.6) Reading symbols from /lib/x86_64-linux-gnu/libXdmcp.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libXdmcp.so.6) Reading symbols from /lib/x86_64-linux-gnu/libxml2.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/libxml2.so.2) Reading symbols from /lib/x86_64-linux-gnu/libgcc_s.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libgcc_s.so.1) Reading symbols from /lib/x86_64-linux-gnu/libsystemd.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libsystemd.so.0) Reading symbols from /lib/x86_64-linux-gnu/libbrotlidec.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libbrotlidec.so.1) Reading symbols from /lib/x86_64-linux-gnu/libexpat.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libexpat.so.1) Reading symbols from /lib/x86_64-linux-gnu/libstdc++.so.6... (No debugging symbols found in /lib/x86_64-linux-gnu/libstdc++.so.6) Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2... Reading symbols from /usr/lib/debug/.build-id/55/c2be7202360e34ccf0ad897cae4fa8b88c5e1e.debug... Reading symbols from /lib/x86_64-linux-gnu/libatspi.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libatspi.so.0) Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0... Reading symbols from /usr/lib/debug/.build-id/fb/4db5e988715b16d1c1ec87fa9e6c2fb5ecbfd8.debug... Reading symbols from /lib/x86_64-linux-gnu/libdatrie.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libdatrie.so.1) Reading symbols from /lib/x86_64-linux-gnu/libblkid.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libblkid.so.1) Reading symbols from /lib/x86_64-linux-gnu/libmd.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libmd.so.0) Reading symbols from /lib/x86_64-linux-gnu/libicuuc.so.72... (No debugging symbols found in /lib/x86_64-linux-gnu/libicuuc.so.72) Reading symbols from /lib/x86_64-linux-gnu/libcap.so.2... (No debugging symbols found in /lib/x86_64-linux-gnu/libcap.so.2) Reading symbols from /lib/x86_64-linux-gnu/libgcrypt.so.20... (No debugging symbols found in /lib/x86_64-linux-gnu/libgcrypt.so.20) Reading symbols from /lib/x86_64-linux-gnu/liblz4.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/liblz4.so.1) Reading symbols from /lib/x86_64-linux-gnu/libbrotlicommon.so.1... (No debugging symbols found in /lib/x86_64-linux-gnu/libbrotlicommon.so.1) Reading symbols from /lib/x86_64-linux-gnu/libicudata.so.72... (No debugging symbols found in /lib/x86_64-linux-gnu/libicudata.so.72) Reading symbols from /lib/x86_64-linux-gnu/libgpg-error.so.0... (No debugging symbols found in /lib/x86_64-linux-gnu/libgpg-error.so.0) [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". pselect64_syscall (sigmask=0x0, timeout=<optimized out>, exceptfds=0x0, writefds=0x7ffca651e250, readfds=0x7ffca651e2d0, nfds=6) at ../sysdeps/unix/sysv/linux/pselect.c:34 34 ../sysdeps/unix/sysv/linux/pselect.c: Datei oder Verzeichnis nicht gefunden. (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x000000000054a281 in FACE_FROM_ID (f=0x17bd59a0, id=11) at ../../src/frame.h:1631 1631 eassert (0 <= id && id < FRAME_FACE_CACHE (f)->used); (gdb) bt #0 0x000000000054a281 in FACE_FROM_ID (f=0x17bd59a0, id=11) at ../../src/frame.h:1631 #1 0x000000000054c6c0 in tty_write_glyphs (f=0x17a6ad50, string=0x7fb15d7dc538, len=40) at ../../src/term.c:793 #2 0x0000000000557e5c in write_glyphs (f=0x17a6ad50, string=0x7fb15d7dc378, len=40) at ../../src/terminal.c:182 #3 0x000000000042de40 in write_row (f=0x17a6ad50, vpos=9, updating_menu_p=false) at ../../src/dispnew.c:6114 #4 0x000000000042be22 in write_matrix (f=0x17a6ad50, inhibit_id_p=true, updating_menu_p=false) at ../../src/dispnew.c:5706 #5 0x0000000000427661 in combine_updates_for_frame (f=0x17a6ad50, inhibit_scrolling=true) at ../../src/dispnew.c:4009 #6 0x000000000047b385 in echo_area_display (update_frame_p=true) at ../../src/xdisp.c:13560 #7 0x0000000000476dbf in message3_nolog (m=XIL(0)) at ../../src/xdisp.c:12458 #8 0x0000000000476a7b in message3 (m=XIL(0)) at ../../src/xdisp.c:12388 #9 0x0000000000476e35 in message1 (m=0x0) at ../../src/xdisp.c:12477 #10 0x00000000006c3a19 in Fmessage (nargs=1, args=0x7fb15a5ff278) at ../../src/editfns.c:3122 #11 0x00000000006d55da in funcall_subr (subr=0x8bf4a0 <Smessage>, numargs=1, args=0x7fb15a5ff278) at ../../src/eval.c:3161 #12 0x00000000007336c2 in exec_byte_code (fun=XIL(0x7fb15aec8cc5), args_template=1025, nargs=4, args=0x7ffca651d5b8) at ../../src/bytecode.c:812 #13 0x00000000006d59f3 in funcall_lambda (fun=XIL(0x7fb15aec8cc5), nargs=4, arg_vector=0x7ffca651d598) at ../../src/eval.c:3229 #14 0x00000000006d4d8f in funcall_general (fun=XIL(0x7fb15aec8cc5), numargs=4, args=0x7ffca651d598) at ../../src/eval.c:3021 #15 0x00000000006d5050 in Ffuncall (nargs=5, args=0x7ffca651d590) at ../../src/eval.c:3070 #16 0x00000000006d44e3 in Fapply (nargs=2, args=0x7ffca651d650) at ../../src/eval.c:2742 #17 0x00000000006d3974 in eval_sub (form=XIL(0x7fb15a5e2783)) at ../../src/eval.c:2547 #18 0x00000000006ce61f in Fprogn (body=XIL(0)) at ../../src/eval.c:439 #19 0x00000000006d01b7 in Flet (args=XIL(0x7fb15a5e0533)) at ../../src/eval.c:1105 #20 0x00000000006d3790 in eval_sub (form=XIL(0x7fb15a5e0523)) at ../../src/eval.c:2526 #21 0x00000000006ce61f in Fprogn (body=XIL(0)) at ../../src/eval.c:439 #22 0x00000000006d5f02 in funcall_lambda (fun=XIL(0x17b31bd5), nargs=5, arg_vector=0x7ffca651db18) at ../../src/eval.c:3327 #23 0x00000000006d4d8f in funcall_general (fun=XIL(0x17b31bd5), numargs=5, args=0x7ffca651db18) at ../../src/eval.c:3021 #24 0x00000000006d5050 in Ffuncall (nargs=6, args=0x7ffca651db10) at ../../src/eval.c:3070 #25 0x00000000006d44e3 in Fapply (nargs=3, args=0x7fb15a5ff1e0) at ../../src/eval.c:2742 #26 0x00000000006d55da in funcall_subr (subr=0x8c0060 <Sapply>, numargs=3, args=0x7fb15a5ff1e0) at ../../src/eval.c:3161 #27 0x00000000007336c2 in exec_byte_code (fun=XIL(0x17ba1bfd), args_template=128, nargs=4, args=0x7fb15a5ff180) at ../../src/bytecode.c:812 #28 0x00000000006d59f3 in funcall_lambda (fun=XIL(0x7fb15b153325), nargs=1, arg_vector=0x7ffca651e400) at ../../src/eval.c:3229 #29 0x00000000006d4d8f in funcall_general (fun=XIL(0x7fb15b153325), numargs=1, args=0x7ffca651e400) at ../../src/eval.c:3021 #30 0x00000000006d5050 in Ffuncall (nargs=2, args=0x7ffca651e3f8) at ../../src/eval.c:3070 #31 0x00000000006c975b in Ffuncall_interactively (nargs=2, args=0x7ffca651e3f8) at ../../src/callint.c:250 #32 0x00000000006d55da in funcall_subr (subr=0x8bf720 <Sfuncall_interactively>, numargs=2, args=0x7ffca651e3f8) at ../../src/eval.c:3161 #33 0x00000000006d4d43 in funcall_general (fun=XIL(0x8bf725), numargs=2, args=0x7ffca651e3f8) at ../../src/eval.c:3017 #34 0x00000000006d5050 in Ffuncall (nargs=3, args=0x7ffca651e3f0) at ../../src/eval.c:3070 #35 0x00000000006cbd8b in Fcall_interactively (function=XIL(0x7fb15a814070), record_flag=XIL(0), keys=XIL(0x7fb15b5c7e55)) at ../../src/callint.c:789 #36 0x00000000006d53da in funcall_subr (subr=0x8bf760 <Scall_interactively>, numargs=3, args=0x7fb15a5ff070) at ../../src/eval.c:3142 #37 0x00000000007336c2 in exec_byte_code (fun=XIL(0x7fb15b5e622d), args_template=1025, nargs=1, args=0x7ffca651f030) at ../../src/bytecode.c:812 #38 0x00000000006d59f3 in funcall_lambda (fun=XIL(0x7fb15b5e622d), nargs=1, arg_vector=0x7ffca651f028) at ../../src/eval.c:3229 #39 0x00000000006d4d8f in funcall_general (fun=XIL(0x7fb15b5e622d), numargs=1, args=0x7ffca651f028) at ../../src/eval.c:3021 #40 0x00000000006d5050 in Ffuncall (nargs=2, args=0x7ffca651f020) at ../../src/eval.c:3070 #41 0x00000000005f3b65 in command_loop_1 () at ../../src/keyboard.c:1545 #42 0x00000000006d11ae in internal_condition_case (bfun=0x5f32f4 <command_loop_1>, handlers=XIL(0x90), hfun=0x5f2776 <cmd_error>) at ../../src/eval.c:1602 #43 0x00000000005f2ebb in command_loop_2 (handlers=XIL(0x90)) at ../../src/keyboard.c:1163 #44 0x00000000006d0618 in internal_catch (tag=XIL(0x12390), func=0x5f2e91 <command_loop_2>, arg=XIL(0x90)) at ../../src/eval.c:1282 #45 0x00000000005f2e4d in command_loop () at ../../src/keyboard.c:1141 #46 0x00000000005f2218 in recursive_edit_1 () at ../../src/keyboard.c:749 #47 0x00000000005f2444 in Frecursive_edit () at ../../src/keyboard.c:832 #48 0x00000000005edc26 in main (argc=5, argv=0x7ffca651f498) at ../../src/emacs.c:2558 Lisp Backtrace: "message" (0x5a5ff278) 0x5aec8cc0 PVEC_CLOSURE "apply" (0xa651d650) "let" (0xa651d940) "tm--around-popup-menu" (0xa651db18) "apply" (0x5a5ff1e0) "popup-menu" (0x5a5ff180) "menu-bar-open" (0x5a5ff110) "menu-bar-open-mouse" (0xa651e400) "funcall-interactively" (0xa651e3f8) "call-interactively" (0x5a5ff070) "command-execute" (0xa651f028) (gdb)
[Three child frames.png (image/png, attachment)]
[tty-child-frames.el (text/x-emacs-lisp, attachment)]
[child-frame-menubar-drag-resize-2025-02-19.diff (text/x-patch, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Thu, 20 Feb 2025 14:22:02 GMT) Full text and rfc822 format available.Message #17 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: martin rudalics <rudalics <at> gmx.at> Cc: 76406 <at> debbugs.gnu.org Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Thu, 20 Feb 2025 15:21:04 +0100
martin rudalics <rudalics <at> gmx.at> writes: >> So I guess I'm missing something important. Any ideas? > > Not really: I do the same but positioned the yellow frame more to the > left so that it is not obscured by the other two child frames. Both > tty-child-frames.el ("/home/martin/temp/tm.el" is my location of your > tm.el) and my patch are attached. I also attach a screenshot > immediately before clicking on the Buffer menu. A complete transcript > of the debugging session is below. So, I think I have now exactly what you are using, and I eventually got a segfault somehow, and found out something: The root frame ended up containing glyphs from a dead menu frame. The dead frame's face cache was set to NULL because it had been freed. The series of events leading to this is still unclear to me. At least we never copy glyphs from a dead frame, that much I can say. Doesn't look like the assertion you are seeing, but maybe it's somehow related. More in the next round.
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Thu, 20 Feb 2025 17:01:01 GMT) Full text and rfc822 format available.Message #20 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Gerd Möllmann <gerd.moellmann <at> gmail.com> Cc: rudalics <at> gmx.at, 76406 <at> debbugs.gnu.org Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Thu, 20 Feb 2025 18:59:55 +0200
> Cc: 76406 <at> debbugs.gnu.org > From: Gerd Möllmann <gerd.moellmann <at> gmail.com> > Date: Thu, 20 Feb 2025 15:21:04 +0100 > > The root frame ended up containing glyphs from a dead menu frame. The > dead frame's face cache was set to NULL because it had been freed. The > series of events leading to this is still unclear to me. At least we > never copy glyphs from a dead frame, that much I can say. Should deleting a frame on a TTY make sure there are no glyphs in the root frame's current glyph matrix whose frame pointer refers to the frame being deleted?
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Thu, 20 Feb 2025 17:23:02 GMT) Full text and rfc822 format available.Message #23 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: rudalics <at> gmx.at, 76406 <at> debbugs.gnu.org Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Thu, 20 Feb 2025 18:22:25 +0100
Eli Zaretskii <eliz <at> gnu.org> writes: >> Cc: 76406 <at> debbugs.gnu.org >> From: Gerd Möllmann <gerd.moellmann <at> gmail.com> >> Date: Thu, 20 Feb 2025 15:21:04 +0100 >> >> The root frame ended up containing glyphs from a dead menu frame. The >> dead frame's face cache was set to NULL because it had been freed. The >> series of events leading to this is still unclear to me. At least we >> never copy glyphs from a dead frame, that much I can say. > > Should deleting a frame on a TTY make sure there are no glyphs in the > root frame's current glyph matrix whose frame pointer refers to the > frame being deleted? It should. Deleting a child frame should ensure that its root is redrawn thoroughly, for the long longer existing child. Which would include clearing the root's current matrix. Why that doesn't happen is unclear to me.
bug-gnu-emacs <at> gnu.org
:bug#76406
; Package emacs
.
(Thu, 20 Feb 2025 17:38:03 GMT) Full text and rfc822 format available.Message #26 received at 76406 <at> debbugs.gnu.org (full text, mbox):
From: Gerd Möllmann <gerd.moellmann <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: rudalics <at> gmx.at, 76406 <at> debbugs.gnu.org Subject: Re: bug#76406: 31.0.50; Crash with tty child frames Date: Thu, 20 Feb 2025 18:37:19 +0100
Gerd Möllmann <gerd.moellmann <at> gmail.com> writes: > Eli Zaretskii <eliz <at> gnu.org> writes: > >>> Cc: 76406 <at> debbugs.gnu.org >>> From: Gerd Möllmann <gerd.moellmann <at> gmail.com> >>> Date: Thu, 20 Feb 2025 15:21:04 +0100 >>> >>> The root frame ended up containing glyphs from a dead menu frame. The >>> dead frame's face cache was set to NULL because it had been freed. The >>> series of events leading to this is still unclear to me. At least we >>> never copy glyphs from a dead frame, that much I can say. >> >> Should deleting a frame on a TTY make sure there are no glyphs in the >> root frame's current glyph matrix whose frame pointer refers to the >> frame being deleted? > > It should. Deleting a child frame should ensure that its root is redrawn > thoroughly, for the long longer existing child. Which would include > clearing the root's current matrix. Why that doesn't happen is unclear > to me. Or, of course, it happens, and the reason is something else. Something for the next debugging round.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.