Package: emacs;
Reported by: Leonardo Hernández <leohdz172 <at> proton.me>
Date: Sat, 20 May 2023 19:51:01 UTC
Severity: normal
Found in version 29.0.91
To reply to this bug, email your comments to 63614 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#63614
; Package emacs
.
(Sat, 20 May 2023 19:51:02 GMT) Full text and rfc822 format available.Leonardo Hernández <leohdz172 <at> proton.me>
:bug-gnu-emacs <at> gnu.org
.
(Sat, 20 May 2023 19:51:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández <leohdz172 <at> proton.me> To: bug-gnu-emacs <at> gnu.org Subject: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Sat, 20 May 2023 18:52:31 +0000
Hello, I have been having issues with crashes running Emacs with PGTK on Wayland. To reproduce, open `emacs -Q`, then copy whatever you want with <M-w> or <C-w> and then copy another thing outside Emacs, for example, `wl-copy <<< "Copied text"`, then Emacs crashes. Backtrace: #0 0x00007f92636ac8ec in () at /usr/lib64/libc.so.6 #1 0x00007f926365d3e2 in raise () at /usr/lib64/libc.so.6 #2 0x0000563f0697d0a5 in terminate_due_to_signal (sig=11, backtrace_limit=<optimized out>) at emacs.c:464 #3 0x0000563f0697def8 in handle_fatal_signal (sig=11) at sysdep.c:1783 fatal = <optimized out> #4 deliver_thread_signal (handler=<optimized out>, sig=11) at sysdep.c:1775 fatal = <optimized out> #5 deliver_fatal_thread_signal (sig=11) at sysdep.c:1795 fatal = <optimized out> #6 handle_sigsegv (sig=11, siginfo=0x563f072243f0 <sigsegv_stack+64496>, arg=<optimized out>) at sysdep.c:1888 fatal = <optimized out> #7 0x00007f926365d490 in <signal handler called> () at /usr/lib64/libc.so.6 #8 0x0000563f06c49d89 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 selection = <optimized out> changed_owner_time = 0 selection_symbol = <optimized out> local_selection_data = <optimized out> local_selection_time = <optimized out> dpyinfo = 0x90c1b80 Vselection_alist = <optimized out> #9 0x0000563f06a9a5c6 in pgtk_handle_selection_event (event=0x7fff20369bc0) at pgtkselect.c:782 event = 0x563f071d44a0 <kbd_buffer+1344> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x90c1b80, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} moved_events = <optimized out> #10 process_special_events () at keyboard.c:4449 event = 0x563f071d44a0 <kbd_buffer+1344> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x90c1b80, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} moved_events = <optimized out> #11 0x0000563f06a9b7cd in swallow_events (do_display=true) at keyboard.c:4489 old_timers_run = <optimized out> #12 0x0000563f06bc2c0c in wait_reading_process_output (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=<optimized out>, do_display=<optimized out>, wait_for_cell=<optimized out>, wait_proc=<optimized out>, just_wait_proc=<optimized out>) at process.c:5781 leave = false wrapped = <optimized out> process_skipped = <optimized out> channel_start = <optimized out> child_fd = <optimized out> channel = <optimized out> nfds = <optimized out> Available = {fds_bits = {16, 0 <repeats 15 times>}} Writeok = {fds_bits = {0 <repeats 16 times>}} check_write = true check_delay = <optimized out> no_avail = false xerrno = 11 proc = <optimized out> timeout = {tv_sec = 0, tv_nsec = 0} end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} timer_delay = {tv_sec = <optimized out>, tv_nsec = <optimized out>} got_output_end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} wait = <optimized out> got_some_output = <optimized out> prev_wait_proc_nbytes_read = <optimized out> retry_for_async = <optimized out> count = {bytes = <optimized out>} now = {tv_sec = <optimized out>, tv_nsec = <optimized out>} last_read_channel = 17 #13 0x0000563f06997b20 in sit_for (timeout=<optimized out>, reading=<optimized out>, display_option=<optimized out>) at dispnew.c:6264 sec = 30 nsec = 0 do_display = <optimized out> curbuf_eq_winbuf = true nbytes = <optimized out> #14 0x0000563f06aa40d5 in read_char (commandflag=1, map=0x563f09b61013, prev_event=0x0, used_mouse_menu=0x7fff2036a6bb, end_time=0x0) at keyboard.c:2881 delay_level = <optimized out> buffer_size = <optimized out> c = 0x0 local_getcjmp = {{__jmpbuf = {94828702059008, -8807486309767267314, 1, 94828736677880, 0, 94828745980467, -8807486309702255602, -3006776290544272370}, __mask_was_saved = 0, __saved_mask = {__val = {94828696057600, 140266600468637, 66, 140266600466355, 94828696063071, 140266600468637, 40080, 140733733840032, 0, 0, 94828736677885, 0, 94828745829971, 0, 16, 17}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = false orig_kboard = 0x563f08f43c30 #15 0x0000563f06c620d7 in read_key_sequence.constprop.0 (keybuf=<optimized out>, prevent_redisplay=false, fix_current_buffer=<optimized out>, can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) at keyboard.c:10083 interrupted_kboard = 0x563f08f43c30 key = <optimized out> used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = <optimized out> t = 0 echo_start = 0 keys_start = 0 current_binding = 0x563f09b61013 first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = {parent = 0x563f08e6f3d3, map = 0x563f08e6f3d3, start = 0, end = 0} keytran = {parent = 0x7f925d6191eb, map = 0x7f925d6191eb, start = 0, end = 0} indec = {parent = 0x563f08e6f4a3, map = 0x563f08e6f4a3, start = 0, end = 0} shift_translated = <optimized out> delayed_switch_frame = <optimized out> original_uppercase = <optimized out> original_uppercase_position = <optimized out> dummyflag = false fake_prefixed_keys = 0x0 first_event = 0x0 second_event = <optimized out> #16 0x0000563f06a9776a in command_loop_1 () at keyboard.c:1384 cmd = <optimized out> keybuf = {0x200001de, 0x1a, 0x7fff2036a8f0, 0x2, 0x295355bfea70, 0x7f925cf00a7d, 0x0, 0x563f06c6728d <run_hook_with_args.constprop.0+45>, 0x1, 0x1, 0x1, 0x7fff2036a950, 0x7fff2036a8c0, 0x563f0722f000 <freloc>, 0x563f06ca0314, 0x7f92636ba48c, 0x295355ba8688, 0x981baf1862a21b00, 0x9510, 0x563f06ca6dc0, 0x7fff2036a980, 0x60, 0x563f08fd28d4, 0x0, 0x563f06d19020 <main_thread.lto_priv>, 0x563f06a954a5 <top_level_2+725>, 0x563f06ca0314, 0x7f92636baf12 <malloc+434>, 0x563f06ca0314, 0x30} i = <optimized out> prev_modiff = 6 prev_buffer = 0x563f092a07f8 #17 0x0000563f06b4cc67 in internal_condition_case (bfun=0x563f06a974a0 <command_loop_1>, handlers=<optimized out>, hfun=0x563f06a94f00 <cmd_error>) at eval.c:1474 val = <optimized out> c = 0x563f08f8c370 #18 0x0000563f06a951be in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 val = <optimized out> #19 0x0000563f06b4cbbc in internal_catch (tag=<optimized out>, func=0x563f06a95190 <command_loop_2>, arg=0x90) at eval.c:1197 val = <optimized out> c = 0x563f08f8c240 #20 0x0000563f06a96f89 in command_loop () at keyboard.c:1111 #21 0x0000563f06c95c30 in recursive_edit_1.isra.0 () at keyboard.c:720 val = <optimized out> #22 0x0000563f06a9746c in Frecursive_edit () at keyboard.c:803 buffer = <optimized out> #23 0x0000563f0698b274 in main (argc=<optimized out>, argv=0x7fff2036adc8) at emacs.c:2529 stack_bottom_variable = 0x0 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = <optimized out> skip_args = 0 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = false rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> In GNU Emacs 29.0.91 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.37, cairo version 1.17.8) of 2023-05-20 built on localhost Repository revision: f571e8f1bb678c52839180e450c2415b31a70516 Repository branch: emacs-29 System Description: Gentoo Linux Configured using: 'configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --datarootdir=/usr/share --disable-silent-rules --docdir=/usr/share/doc/emacs-29.0.9999-r1 --htmldir=/usr/share/doc/emacs-29.0.9999-r1/html --libdir=/usr/lib64 --program-suffix=-emacs-29-vcs --includedir=/usr/include/emacs-29-vcs --infodir=/usr/share/info/emacs-29-vcs --localstatedir=/var --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp --without-compress-install --without-hesiod --without-pop --with-file-notification=inotify --with-pdumper --enable-acl --with-dbus --with-modules --without-gameuser --with-libgmp --with-gpm --with-native-compilation=aot --with-json --without-kerberos --without-kerberos5 --with-lcms2 --with-xml2 --with-mailutils --without-selinux --with-sqlite3 --with-gnutls --without-libsystemd --with-threads --with-tree-sitter --without-wide-int --with-sound=alsa --with-zlib --with-pgtk --without-x --without-ns --with-toolkit-scroll-bars --without-gconf --with-gsettings --with-harfbuzz --without-libotf --without-m17n-flt --without-xwidgets --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-webp --with-imagemagick --with-dumping=pdumper --with-cairo 'CFLAGS=-march=native -O3 -pipe -flto=auto -Werror=odr -Werror=strict-aliasing -Werror=lto-type-mismatch -g3 -ggdb3 -gdwarf-4' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed -Wl,-O2'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $LC_MONETARY: es_MX.UTF-8 value of $LC_NUMERIC: es_MX.UTF-8 value of $LC_TIME: es_MX.UTF-8 value of $LANG: en_US.utf8 locale-coding-system: utf-8-unix Major mode: Fundamental Minor modes in effect: tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util text-property-search time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 77298 7908) (symbols 48 7106 0) (strings 32 19506 1667) (string-bytes 1 590407) (vectors 16 15625) (vector-slots 8 327135 8165) (floats 8 27 46) (intervals 56 405 0) (buffers 984 12))
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Sun, 21 May 2023 00:52:02 GMT) Full text and rfc822 format available.Message #8 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández <leohdz172 <at> proton.me> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Sun, 21 May 2023 08:51:30 +0800
Leonardo Hernández <leohdz172 <at> proton.me> writes: > Hello, I have been having issues with crashes running Emacs with PGTK > on Wayland. > > To reproduce, open `emacs -Q`, then copy whatever you want with <M-w> or > <C-w> and then copy another thing outside Emacs, for example, `wl-copy > <<< "Copied text"`, then Emacs crashes. > > Backtrace: > #0 0x00007f92636ac8ec in () at /usr/lib64/libc.so.6 > #1 0x00007f926365d3e2 in raise () at /usr/lib64/libc.so.6 > #2 0x0000563f0697d0a5 in terminate_due_to_signal (sig=11, > backtrace_limit=<optimized out>) at emacs.c:464 > #3 0x0000563f0697def8 in handle_fatal_signal (sig=11) at sysdep.c:1783 > fatal = <optimized out> > #4 deliver_thread_signal (handler=<optimized out>, sig=11) at sysdep.c:1775 > fatal = <optimized out> > #5 deliver_fatal_thread_signal (sig=11) at sysdep.c:1795 > fatal = <optimized out> > #6 handle_sigsegv (sig=11, siginfo=0x563f072243f0 <sigsegv_stack+64496>, > arg=<optimized out>) at sysdep.c:1888 > fatal = <optimized out> > #7 0x00007f926365d490 in <signal handler called> () at /usr/lib64/libc.so.6 > #8 0x0000563f06c49d89 in pgtk_handle_selection_clear (event=<optimized > out>) at pgtkselect.c:742 > selection = <optimized out> > changed_owner_time = 0 > selection_symbol = <optimized out> > local_selection_data = <optimized out> > local_selection_time = <optimized out> > dpyinfo = 0x90c1b80 > Vselection_alist = <optimized out> Sadly, it seems that most of the relevant local variables have been optimized out. Would you please run (in this frame): (gdb) *event (gdb) p *event->selection Thanks.
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Sun, 21 May 2023 05:13:02 GMT) Full text and rfc822 format available.Message #11 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández Hernández <leohdz172 <at> proton.me> Cc: "63614 <at> debbugs.gnu.org" <63614 <at> debbugs.gnu.org> Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Sun, 21 May 2023 13:11:53 +0800
Leonardo Hernández Hernández <leohdz172 <at> proton.me> writes: >> Sadly, it seems that most of the relevant local variables have been >> optimized out. Would you please run (in this frame): >> > >> (gdb) *event >> (gdb) p *event->selection >> > >> > >> Thanks. > > (gdb) frame 8 > #8 0x0000563f06c49d89 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 > 742 local_selection_data = LOCAL_SELECTION (selection_symbol, dpyinfo); > (gdb) p *event > value has been optimized out > (gdb) frame 9 > #9 0x0000563f06a9a5c6 in pgtk_handle_selection_event (event=0x7fff20369bc0) at pgtkselect.c:782 > 782 pgtk_handle_selection_clear (event); > (gdb) p *event > $1 = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x90c1b80, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} > (gdb) p *event->selection > > $2 = <incomplete type> > (gdb) p *event->dpyinfo > > Cannot access memory at address 0x90c1b80 > (gdb) quit What is: (gdb) p x_display_list ? And thanks in advance.
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Sun, 21 May 2023 07:33:03 GMT) Full text and rfc822 format available.Message #14 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: "63614 <at> debbugs.gnu.org" <63614 <at> debbugs.gnu.org> Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Sun, 21 May 2023 04:30:39 +0000
[Message part 1 (text/plain, inline)]
> Sadly, it seems that most of the relevant local variables have been > optimized out. Would you please run (in this frame): > > (gdb) *event > (gdb) p *event->selection > > > Thanks. (gdb) frame 8 #8 0x0000563f06c49d89 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 742 local_selection_data = LOCAL_SELECTION (selection_symbol, dpyinfo); (gdb) p *event value has been optimized out (gdb) frame 9 #9 0x0000563f06a9a5c6 in pgtk_handle_selection_event (event=0x7fff20369bc0) at pgtkselect.c:782 782 pgtk_handle_selection_clear (event); (gdb) p *event $1 = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x90c1b80, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} (gdb) p *event->selection $2 = <incomplete type> (gdb) p *event->dpyinfo Cannot access memory at address 0x90c1b80 (gdb) quit
[signature.asc (application/pgp-signature, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Sun, 21 May 2023 07:33:03 GMT) Full text and rfc822 format available.Message #17 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com>, "63614 <at> debbugs.gnu.org" <63614 <at> debbugs.gnu.org> Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Sun, 21 May 2023 06:42:30 +0000
[Message part 1 (text/plain, inline)]
> What is: > > (gdb) p x_display_list > > ? > > And thanks in advance. (gdb) p x_display_list $1 = (struct pgtk_display_info *) 0x563f090c1b80 (gdb) p *x_display_list $2 = {next = 0x0, terminal = 0x563f08fd4b08, {gdpy = 0x563f08f0c620, display = 0x563f08f0c620}, name_list_element = 0x563f08e6f3c3, reference_count = 1, x_id = 1, x_id_name = 0x563f0908b5e0 "emacs <at> gentoo", n_fonts = 5, smallest_char_width = 2, smallest_font_height = 15, bitmaps = 0x0, bitmaps_size = 0, bitmaps_last = 0, resx = 96, resy = 96, grabbed = 0, n_planes = 32, color_p = 1, icon_bitmap_id = -2, root_window = 42, rdb = 0x0, vertical_scroll_bar_cursor = 0x563f09044e00, horizontal_scroll_bar_cursor = 0x563f090abc90, mouse_highlight = {mouse_face_beg_row = -1, mouse_face_beg_col = -1, mouse_face_beg_x = 0, mouse_face_end_row = -1, mouse_face_end_col = -1, mouse_face_end_x = 0, mouse_face_window = 0x0, mouse_face_face_id = 0, mouse_face_overlay = 0x0, mouse_face_mouse_frame = 0x0, mouse_face_mouse_x = 0, mouse_face_mouse_y = 0, mouse_face_past_end = false, mouse_face_defer = false, mouse_face_hidden = false}, highlight_frame = 0x0, x_focus_frame = 0x0, x_focus_event_frame = 0x0, last_mouse_frame = 0x0, last_mouse_motion_frame = 0x0, last_mouse_motion_x = 0, last_mouse_motion_y = 0, last_mouse_glyph = {x = 0, y = 0, width = 0, height = 0}, last_mouse_movement_time = 0, last_user_time = 50116744, last_mouse_scroll_bar = 0x0, invisible_cursor = 0x563f090b7c90, xg_cursor = 0x563f090c6ad0, devices = 0x563f090c5a10, last_mouse_glyph_frame = 0x0, last_click_event = 0x0, im = {context = 0x563f090d6e00, focused_frame = 0x0}, scroll = {acc_x = 0, acc_y = 0, x_per_char = 1, y_per_line = 1}, connection = 4} I have been testing and seems that this happens when both `-O3` and `-march=native` exist in CFLAGS, if I turn `-O3` into `-O2` or remove `-march=native` then it does not crashes. This is most likely a bug in gcc rather than emacs, right?, in case you required it, my gcc version is: gcc (Gentoo Hardened 13.1.1_p20230513 p2) 13.1.1 20230513
[signature.asc (application/pgp-signature, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Mon, 22 May 2023 01:13:02 GMT) Full text and rfc822 format available.Message #20 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández <leohdz172 <at> proton.me> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Mon, 22 May 2023 09:11:52 +0800
Leonardo Hernández <leohdz172 <at> proton.me> writes: > (event=0x7fff20369bc0) at pgtkselect.c:782 > event = 0x563f071d44a0 <kbd_buffer+1344> > copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x90c1b80, requestor = > 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} > moved_events = <optimized out> > #10 process_special_events () at keyboard.c:4449 > event = 0x563f071d44a0 <kbd_buffer+1344> > copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x90c1b80, requestor = > 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} > moved_events = <optimized out> > #11 0x0000563f06a9b7cd in swallow_events (do_display=true) at > keyboard.c:4489 > old_timers_run = <optimized out> If I'm not mistaken, what seems to be shown is that an invalid selection event somehow ended up in the keyboard buffer, to be processed by process_special_events. Possibly, one such event was processed earlier, but not correctly removed from the keyboard buffer. What is: (gdb) p kbd_buffer[1344].sie ?
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Wed, 24 May 2023 06:51:01 GMT) Full text and rfc822 format available.Message #23 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández Hernández <leohdz172 <at> proton.me> Cc: "63614 <at> debbugs.gnu.org" <63614 <at> debbugs.gnu.org> Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Wed, 24 May 2023 14:50:28 +0800
Leonardo Hernández Hernández <leohdz172 <at> proton.me> writes: >> What is: >> > >> (gdb) p kbd_buffer[1344].sie >> > >> ? > > (gdb) p kbd_buffer[1344].sie > $1 = {kind = NO_EVENT, dpyinfo = 0x0, requestor = 0x0, selection = 0x0, target = 0x0, property = 0x0, time = 0} It's been three days, and I doubt this is from the same GDB session that produced the backtrace I replied to. Would you please show a new: (gdb) bt full again?
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Wed, 24 May 2023 08:05:01 GMT) Full text and rfc822 format available.Message #26 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: "63614 <at> debbugs.gnu.org" <63614 <at> debbugs.gnu.org> Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Wed, 24 May 2023 06:37:51 +0000
[Message part 1 (text/plain, inline)]
> What is: > > (gdb) p kbd_buffer[1344].sie > > ? (gdb) p kbd_buffer[1344].sie $1 = {kind = NO_EVENT, dpyinfo = 0x0, requestor = 0x0, selection = 0x0, target = 0x0, property = 0x0, time = 0}
[signature.asc (application/pgp-signature, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Thu, 25 May 2023 06:15:01 GMT) Full text and rfc822 format available.Message #29 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández Hernández <leohdz172 <at> proton.me> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Thu, 25 May 2023 14:13:38 +0800
Leonardo Hernández Hernández <leohdz172 <at> proton.me> writes: > event = 0x55d8dac3bc20 <kbd_buffer+1088> > copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0xdb87f650, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} > moved_events = <optimized out> > #10 process_special_events () at keyboard.c:4449 > event = 0x55d8dac3bc20 <kbd_buffer+1088> > copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0xdb87f650, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} > moved_events = <optimized out> > #11 0x000055d8da521cbd in swallow_events (do_display=true) at keyboard.c:4489 > old_timers_run = <optimized out> > #12 0x000055d8da63da7c in wait_reading_process_output > (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=<optimized out>, do_display=<optimized out>, wait_for_cell=<optimized out>, wait_proc=<optimized out>, just_wait_proc=<optimized out>) at process.c:5781 > leave = false > wrapped = <optimized out> > process_skipped = <optimized out> > channel_start = <optimized out> > child_fd = <optimized out> > channel = <optimized out> > nfds = <optimized out> > Available = {fds_bits = {16, 0 <repeats 15 times>}} > Writeok = {fds_bits = {0 <repeats 16 times>}} > check_write = true > check_delay = <optimized out> > no_avail = false > xerrno = 11 > proc = <optimized out> > timeout = {tv_sec = 0, tv_nsec = 0} > end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} > timer_delay = {tv_sec = <optimized out>, tv_nsec = <optimized out>} > got_output_end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} > wait = <optimized out> > got_some_output = <optimized out> > prev_wait_proc_nbytes_read = <optimized out> > retry_for_async = <optimized out> > count = {bytes = <optimized out>} > now = {tv_sec = <optimized out>, tv_nsec = <optimized out>} > last_read_channel = -1 > #13 0x000055d8da41e3a0 in sit_for (timeout=<optimized out>, reading=<optimized out>, display_option=<optimized out>) at dispnew.c:6264 > sec = 30 > nsec = 0 > do_display = <optimized out> > curbuf_eq_winbuf = true > nbytes = <optimized out> > #14 0x000055d8da52a5c5 in read_char (commandflag=1, map=0x55d8dbdab6d3, prev_event=0x0, used_mouse_menu=0x7ffffcfef4fb, end_time=0x0) at keyboard.c:2881 > delay_level = <optimized out> > buffer_size = <optimized out> > c = 0x0 > local_getcjmp = {{__jmpbuf = {94389871329920, -4940312681896898891, 1, 140582085818120, 0, 94389890508307, -4940312682234540363, -1207467647118897483}, __mask_was_saved = 0, __saved_mask = {__val = {94389865389056, 94389889840131, 586, 2, 94389865403823, 140737437954896, 40080, 140737437954784, 0, 0, 140582085818125, 0, 94389889840131, 0, 146, 147}}}} > save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} > tem = <optimized out> > save = <optimized out> > previous_echo_area_message = 0x0 > also_record = 0x0 > reread = false > recorded = false > polling_stopped_here = false > orig_kboard = 0x55d8db7facb0 > #15 0x000055d8da6d84b7 in read_key_sequence.constprop.0 > (keybuf=<optimized out>, prevent_redisplay=false, fix_current_buffer=<optimized out>, can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) > at keyboard.c:10083 > interrupted_kboard = 0x55d8db7facb0 > key = <optimized out> > used_mouse_menu = false > echo_local_start = 0 > last_real_key_start = 0 > keys_local_start = 0 > new_binding = <optimized out> > t = 0 > echo_start = 0 > keys_start = 0 > current_binding = 0x55d8dbdab6d3 > first_unbound = 31 > mock_input = 0 > used_mouse_menu_history = {false <repeats 30 times>} > fkey = {parent = 0x55d8db691393, map = 0x55d8db691393, start = 0, end = 0} > keytran = {parent = 0x7fdbd1c0897b, map = 0x7fdbd1c0897b, start = 0, end = 0} > indec = {parent = 0x55d8db6913a3, map = 0x55d8db6913a3, start = 0, end = 0} > shift_translated = <optimized out> > delayed_switch_frame = <optimized out> > original_uppercase = <optimized out> > original_uppercase_position = <optimized out> > dummyflag = false > fake_prefixed_keys = 0x0 > first_event = 0x0 > second_event = <optimized out> > #16 0x000055d8da51dc5a in command_loop_1 () at keyboard.c:1384 > cmd = <optimized out> > keybuf = {0x5e, 0x55d8da5dc786 <eval_sub+1142>, 0x55d8db63e510, 0x55d8da63530c <exec_byte_code+508>, 0x0, 0x80, 0x0, 0x7fdbd190e738, 0x55d8da78c020 <main_thread.lto_priv>, 0x7fdbd1ce62b5, 0x55d8db6843c4, 0x0, 0x55d8da716314, 0x7fdbd6f01705, 0x53474e, 0x7fdbd5638400, 0x7ffffcfefaf0, 0xe90a45cb1b95ae00, 0x9510, 0x55d8da71cd60, 0x7ffffcfef7c0, 0x60, 0x55d8db6843c4, 0x0, 0x55d8da78c020 <main_thread.lto_priv>, 0x55d8da51b995 <top_level_2+725>, 0x55d8da716314, 0x7fdbd5638f12 <malloc+434>, 0x15, 0x30} > i = <optimized out> > prev_modiff = 31 > prev_buffer = 0x7fdbd1497708 > #17 0x000055d8da5d6b67 in internal_condition_case (bfun=0x55d8da51d990 <command_loop_1>, handlers=<optimized out>, hfun=0x55d8da51b3f0 <cmd_error>) at eval.c:1474 > val = <optimized out> > c = 0x55d8db688350 > #18 0x000055d8da51b6ae in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 > val = <optimized out> > #19 0x000055d8da5d6abc in internal_catch (tag=<optimized out>, func=0x55d8da51b680 <command_loop_2>, arg=0x90) at eval.c:1197 > val = <optimized out> > c = 0x55d8db687de0 > #20 0x000055d8da51d479 in command_loop () at keyboard.c:1111 > #21 0x000055d8da70b9b0 in recursive_edit_1.isra.0 () at keyboard.c:720 > val = <optimized out> > #22 0x000055d8da51d95c in Frecursive_edit () at keyboard.c:803 > buffer = <optimized out> > #23 0x000055d8da411b9d in main (argc=<optimized out>, argv=0x7ffffcfefc08) at emacs.c:2529 > stack_bottom_variable = 0x0 > no_loadup = false > junk = 0x0 > dname_arg = 0x0 > ch_to_dir = 0x0 > original_pwd = 0x0 > dump_mode = <optimized out> > skip_args = 0 > temacs = 0x0 > attempt_load_pdump = <optimized out> > only_version = false > rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} > lc_all = <optimized out> > sockfd = -1 > module_assertions = <optimized out> > (gdb) frame 8 > #8 0x000055d8da6bd059 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 > 742 local_selection_data = LOCAL_SELECTION (selection_symbol, dpyinfo); > (gdb) p *event > value has been optimized out > (gdb) frame 9 > #9 0x000055d8da520ab6 in pgtk_handle_selection_event (event=0x7ffffcfeea00) at pgtkselect.c:782 > 782 pgtk_handle_selection_clear (event); > (gdb) p *event > $1 = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0xdb87f650, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} I suppose what this shows is that an invalid SELECTION_CLEAR_EVENT has somehow found its way in to the keyboard buffer. We need to narrow down the scope of the problem. If you comment out the entirety of `process_special_events', does the crash still occur?
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Thu, 25 May 2023 07:31:01 GMT) Full text and rfc822 format available.Message #32 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Thu, 25 May 2023 05:34:04 +0000
> It's been three days, and I doubt this is from the same GDB session > that produced the backtrace I replied to. > Indeed, I'm sorry. > Would you please show a > new: > > (gdb) bt full > > again? (gdb) bt full #0 0x00007fdbd562a8ec in () at /usr/lib64/libc.so.6 #1 0x00007fdbd55db3e2 in raise () at /usr/lib64/libc.so.6 #2 0x000055d8da403c6a in terminate_due_to_signal (sig=11, backtrace_limit=<optimized out>) at emacs.c:464 #3 0x000055d8da404abd in handle_fatal_signal (sig=11) at sysdep.c:1783 fatal = <optimized out> #4 deliver_thread_signal (handler=<optimized out>, sig=11) at sysdep.c:1775 fatal = <optimized out> #5 deliver_fatal_thread_signal (sig=11) at sysdep.c:1795 fatal = <optimized out> #6 handle_sigsegv (sig=11, siginfo=0x55d8dac8bcb0 <sigsegv_stack+64528>, arg=<optimized out>) at sysdep.c:1888 fatal = <optimized out> #7 0x00007fdbd55db490 in <signal handler called> () at /usr/lib64/libc.so.6 #8 0x000055d8da6bd059 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 selection = <optimized out> changed_owner_time = 0 selection_symbol = <optimized out> local_selection_data = <optimized out> local_selection_time = <optimized out> dpyinfo = 0xdb87f650 Vselection_alist = <optimized out> #9 0x000055d8da520ab6 in pgtk_handle_selection_event (event=0x7ffffcfeea00) at pgtkselect.c:782 event = 0x55d8dac3bc20 <kbd_buffer+1088> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0xdb87f650, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} moved_events = <optimized out> #10 process_special_events () at keyboard.c:4449 event = 0x55d8dac3bc20 <kbd_buffer+1088> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0xdb87f650, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} moved_events = <optimized out> #11 0x000055d8da521cbd in swallow_events (do_display=true) at keyboard.c:4489 old_timers_run = <optimized out> #12 0x000055d8da63da7c in wait_reading_process_output (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=<optimized out>, do_display=<optimized out>, wait_for_cell=<optimized out>, wait_proc=<optimized out>, just_wait_proc=<optimized out>) at process.c:5781 leave = false wrapped = <optimized out> process_skipped = <optimized out> channel_start = <optimized out> child_fd = <optimized out> channel = <optimized out> nfds = <optimized out> Available = {fds_bits = {16, 0 <repeats 15 times>}} Writeok = {fds_bits = {0 <repeats 16 times>}} check_write = true check_delay = <optimized out> no_avail = false xerrno = 11 proc = <optimized out> timeout = {tv_sec = 0, tv_nsec = 0} end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} timer_delay = {tv_sec = <optimized out>, tv_nsec = <optimized out>} got_output_end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} wait = <optimized out> got_some_output = <optimized out> prev_wait_proc_nbytes_read = <optimized out> retry_for_async = <optimized out> count = {bytes = <optimized out>} now = {tv_sec = <optimized out>, tv_nsec = <optimized out>} last_read_channel = -1 #13 0x000055d8da41e3a0 in sit_for (timeout=<optimized out>, reading=<optimized out>, display_option=<optimized out>) at dispnew.c:6264 sec = 30 nsec = 0 do_display = <optimized out> curbuf_eq_winbuf = true nbytes = <optimized out> #14 0x000055d8da52a5c5 in read_char (commandflag=1, map=0x55d8dbdab6d3, prev_event=0x0, used_mouse_menu=0x7ffffcfef4fb, end_time=0x0) at keyboard.c:2881 delay_level = <optimized out> buffer_size = <optimized out> c = 0x0 local_getcjmp = {{__jmpbuf = {94389871329920, -4940312681896898891, 1, 140582085818120, 0, 94389890508307, -4940312682234540363, -1207467647118897483}, __mask_was_saved = 0, __saved_mask = {__val = {94389865389056, 94389889840131, 586, 2, 94389865403823, 140737437954896, 40080, 140737437954784, 0, 0, 140582085818125, 0, 94389889840131, 0, 146, 147}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = false orig_kboard = 0x55d8db7facb0 #15 0x000055d8da6d84b7 in read_key_sequence.constprop.0 (keybuf=<optimized out>, prevent_redisplay=false, fix_current_buffer=<optimized out>, can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) at keyboard.c:10083 interrupted_kboard = 0x55d8db7facb0 key = <optimized out> used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = <optimized out> t = 0 echo_start = 0 keys_start = 0 current_binding = 0x55d8dbdab6d3 first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = {parent = 0x55d8db691393, map = 0x55d8db691393, start = 0, end = 0} keytran = {parent = 0x7fdbd1c0897b, map = 0x7fdbd1c0897b, start = 0, end = 0} indec = {parent = 0x55d8db6913a3, map = 0x55d8db6913a3, start = 0, end = 0} shift_translated = <optimized out> delayed_switch_frame = <optimized out> original_uppercase = <optimized out> original_uppercase_position = <optimized out> dummyflag = false fake_prefixed_keys = 0x0 first_event = 0x0 second_event = <optimized out> #16 0x000055d8da51dc5a in command_loop_1 () at keyboard.c:1384 cmd = <optimized out> keybuf = {0x5e, 0x55d8da5dc786 <eval_sub+1142>, 0x55d8db63e510, 0x55d8da63530c <exec_byte_code+508>, 0x0, 0x80, 0x0, 0x7fdbd190e738, 0x55d8da78c020 <main_thread.lto_priv>, 0x7fdbd1ce62b5, 0x55d8db6843c4, 0x0, 0x55d8da716314, 0x7fdbd6f01705, 0x53474e, 0x7fdbd5638400, 0x7ffffcfefaf0, 0xe90a45cb1b95ae00, 0x9510, 0x55d8da71cd60, 0x7ffffcfef7c0, 0x60, 0x55d8db6843c4, 0x0, 0x55d8da78c020 <main_thread.lto_priv>, 0x55d8da51b995 <top_level_2+725>, 0x55d8da716314, 0x7fdbd5638f12 <malloc+434>, 0x15, 0x30} i = <optimized out> prev_modiff = 31 prev_buffer = 0x7fdbd1497708 #17 0x000055d8da5d6b67 in internal_condition_case (bfun=0x55d8da51d990 <command_loop_1>, handlers=<optimized out>, hfun=0x55d8da51b3f0 <cmd_error>) at eval.c:1474 val = <optimized out> c = 0x55d8db688350 #18 0x000055d8da51b6ae in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 val = <optimized out> #19 0x000055d8da5d6abc in internal_catch (tag=<optimized out>, func=0x55d8da51b680 <command_loop_2>, arg=0x90) at eval.c:1197 val = <optimized out> c = 0x55d8db687de0 #20 0x000055d8da51d479 in command_loop () at keyboard.c:1111 #21 0x000055d8da70b9b0 in recursive_edit_1.isra.0 () at keyboard.c:720 val = <optimized out> #22 0x000055d8da51d95c in Frecursive_edit () at keyboard.c:803 buffer = <optimized out> #23 0x000055d8da411b9d in main (argc=<optimized out>, argv=0x7ffffcfefc08) at emacs.c:2529 stack_bottom_variable = 0x0 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = <optimized out> skip_args = 0 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = false rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> (gdb) frame 8 #8 0x000055d8da6bd059 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 742 local_selection_data = LOCAL_SELECTION (selection_symbol, dpyinfo); (gdb) p *event value has been optimized out (gdb) frame 9 #9 0x000055d8da520ab6 in pgtk_handle_selection_event (event=0x7ffffcfeea00) at pgtkselect.c:782 782 pgtk_handle_selection_clear (event); (gdb) p *event $1 = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0xdb87f650, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} (gdb) p *event->selection $2 = <incomplete type> (gdb) p *event->dpyinfo Cannot access memory at address 0xdb87f650 (gdb) p *x_display_list $3 = {next = 0x0, terminal = 0x55d8db7627f0, {gdpy = 0x55d8db798b10, display = 0x55d8db798b10}, name_list_element = 0x55d8db691383, reference_count = 1, x_id = 1, x_id_name = 0x55d8db85dad0 "emacs <at> gentoo", n_fonts = 5, smallest_char_width = 2, smallest_font_height = 15, bitmaps = 0x0, bitmaps_size = 0, bitmaps_last = 0, resx = 96, resy = 96, grabbed = 0, n_planes = 32, color_p = 1, icon_bitmap_id = -2, root_window = 42, rdb = 0x0, vertical_scroll_bar_cursor = 0x55d8db81adc0, horizontal_scroll_bar_cursor = 0x55d8db863eb0, mouse_highlight = {mouse_face_beg_row = -1, mouse_face_beg_col = -1, mouse_face_beg_x = 0, mouse_face_end_row = -1, mouse_face_end_col = -1, mouse_face_end_x = 0, mouse_face_window = 0x0, mouse_face_face_id = 0, mouse_face_overlay = 0x0, mouse_face_mouse_frame = 0x0, mouse_face_mouse_x = 0, mouse_face_mouse_y = 0, mouse_face_past_end = false, mouse_face_defer = false, mouse_face_hidden = false}, highlight_frame = 0x0, x_focus_frame = 0x0, x_focus_event_frame = 0x0, last_mouse_frame = 0x0, last_mouse_motion_frame = 0x0, last_mouse_motion_x = 0, last_mouse_motion_y = 0, last_mouse_glyph = {x = 0, y = 0, width = 0, height = 0}, last_mouse_movement_time = 0, last_user_time = 43447740, last_mouse_scroll_bar = 0x0, invisible_cursor = 0x55d8db883f40, xg_cursor = 0x55d8db884c40, devices = 0x55d8db88f310, last_mouse_glyph_frame = 0x0, last_click_event = 0x0, im = {context = 0x55d8db8674c0, focused_frame = 0x0}, scroll = {acc_x = 0, acc_y = 0, x_per_char = 1, y_per_line = 1}, connection = 4} (gdb) p kbd_buffer[1088].sie $4 = {kind = NO_EVENT, dpyinfo = 0x0, requestor = 0x0, selection = 0x0, target = 0x0, property = 0x0, time = 0} (gdb) quit
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Thu, 25 May 2023 07:31:02 GMT) Full text and rfc822 format available.Message #35 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Thu, 25 May 2023 06:48:17 +0000
On Thu, May 25, 2023 at 12:13:38AM -0600, Po Lu wrote: > I suppose what this shows is that an invalid SELECTION_CLEAR_EVENT has > somehow found its way in to the keyboard buffer. > > We need to narrow down the scope of the problem. If you comment out the > entirety of `process_special_events', does the crash still occur? Yes, I am using this diff: diff --git a/src/keyboard.c b/src/keyboard.c index b1ccf4acde4..2c9515194f7 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -4401,6 +4401,7 @@ kbd_buffer_get_event (KBOARD **kbp, static void process_special_events (void) { + #if 0 union buffered_input_event *event; #if defined HAVE_X11 || defined HAVE_PGTK || defined HAVE_HAIKU #ifndef HAVE_HAIKU @@ -4476,6 +4477,7 @@ process_special_events (void) #endif } } + #endif } /* Process any events that are not user-visible, run timer events that and the backtrace: (gdb) bt full #0 0x00007fe5d8b238ec in () at /usr/lib64/libc.so.6 #1 0x00007fe5d8ad43e2 in raise () at /usr/lib64/libc.so.6 #2 0x0000558b3fc04c6a in terminate_due_to_signal (sig=11, backtrace_limit=<optimized out>) at emacs.c:464 #3 0x0000558b3fc05ae5 in handle_fatal_signal (sig=11) at sysdep.c:1783 fatal = <optimized out> #4 deliver_thread_signal (handler=<optimized out>, sig=11) at sysdep.c:1775 fatal = <optimized out> #5 deliver_fatal_thread_signal (sig=11) at sysdep.c:1795 fatal = <optimized out> #6 handle_sigsegv (sig=11, siginfo=0x558b4048ccb0 <sigsegv_stack+64528>, arg=<optimized out>) at sysdep.c:1888 fatal = <optimized out> #7 0x00007fe5d8ad4490 in <signal handler called> () at /usr/lib64/libc.so.6 #8 0x0000558b3fd2795f in pgtk_handle_selection_clear (event=0x7ffe61851e40) at pgtkselect.c:742 changed_owner_time = 0 local_selection_time = <optimized out> dpyinfo = 0x40da71d0 Vselection_alist = <optimized out> selection = <optimized out> selection_symbol = <optimized out> local_selection_data = <optimized out> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x40da71d0, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} event = <optimized out> obj = 0x0 str = <optimized out> #9 pgtk_handle_selection_event (event=0x7ffe61851e40) at pgtkselect.c:782 copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x40da71d0, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} event = <optimized out> obj = 0x0 str = <optimized out> #10 kbd_buffer_get_event (kbp=kbp <at> entry=0x7ffe618520c8, used_mouse_menu=used_mouse_menu <at> entry=0x7ffe6185263b, end_time=end_time <at> entry=0x0) at keyboard.c:4071 copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x40da71d0, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} event = <optimized out> obj = 0x0 str = <optimized out> #11 0x0000558b3fd29bc4 in read_event_from_main_queue (used_mouse_menu=<optimized out>, local_getcjmp=0x7ffe61852340, end_time=<optimized out>) at keyboard.c:2279 c = 0x0 save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} kb = 0x558b40d2dbd0 nextevt = <optimized out> frame = <optimized out> terminal = <optimized out> events = {0x7fe5d489770d, 0x13f000000, 0x558b41335113, 0x9c90d489770d, 0x24a, 0x558b40c05963, 0x9c90, 0x9c90, 0x4000000006000000, 0x400000003f000000, 0x0, 0x558b3fe54381 <lookup_char_property+497>, 0x9c90, 0x1618524b0, 0xffffffffffffffff, 0x93} n = 0 c = <optimized out> local_getcjmp = {{__jmpbuf = {94056566772352, -1901120014703127217, 1, 140625090017032, 0, 94056582669987, -1901120015443421873, -5658946911598406321}, __mask_was_saved = 0, __saved_mask = {__val = {94056560832960, 94056575718051, 586, 2, 94056560847727, 140730534536336, 40080, 140730534536224, 0, 0, 140625090017037, 0, 94056575718051, 0, 146, 147}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = true orig_kboard = 0x558b40d2dbd0 #12 read_decoded_event_from_main_queue (used_mouse_menu=<optimized out>, prev_event=<optimized out>, local_getcjmp=<optimized out>, end_time=<optimized out>) at keyboard.c:2343 nextevt = <optimized out> frame = <optimized out> terminal = <optimized out> events = {0x7fe5d489770d, 0x13f000000, 0x558b41335113, 0x9c90d489770d, 0x24a, 0x558b40c05963, 0x9c90, 0x9c90, 0x4000000006000000, 0x400000003f000000, 0x0, 0x558b3fe54381 <lookup_char_property+497>, 0x9c90, 0x1618524b0, 0xffffffffffffffff, 0x93} n = 0 c = <optimized out> local_getcjmp = {{__jmpbuf = {94056566772352, -1901120014703127217, 1, 140625090017032, 0, 94056582669987, -1901120015443421873, -5658946911598406321}, __mask_was_saved = 0, __saved_mask = {__val = {94056560832960, 94056575718051, 586, 2, 94056560847727, 140730534536336, 40080, 140730534536224, 0, 0, 140625090017037, 0, 94056575718051, 0, 146, 147}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = true orig_kboard = 0x558b40d2dbd0 #13 read_char (commandflag=1, map=0x558b40c8c593, prev_event=0x0, used_mouse_menu=0x7ffe6185263b, end_time=0x0) at keyboard.c:2973 c = <optimized out> local_getcjmp = {{__jmpbuf = {94056566772352, -1901120014703127217, 1, 140625090017032, 0, 94056582669987, -1901120015443421873, -5658946911598406321}, __mask_was_saved = 0, __saved_mask = {__val = {94056560832960, 94056575718051, 586, 2, 94056560847727, 140730534536336, 40080, 140730534536224, 0, 0, 140625090017037, 0, 94056575718051, 0, 146, 147}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = true orig_kboard = 0x558b40d2dbd0 #14 0x0000558b3feda8b7 in read_key_sequence.constprop.0 (keybuf=<optimized out>, prevent_redisplay=false, fix_current_buffer=<optimized out>, can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) at keyboard.c:10085 interrupted_kboard = 0x558b40d2dbd0 key = <optimized out> used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = <optimized out> t = 0 echo_start = 0 keys_start = 0 current_binding = 0x558b40c8c593 first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = {parent = 0x558b40bb6393, map = 0x558b40bb6393, start = 0, end = 0} keytran = {parent = 0x7fe5d500897b, map = 0x7fe5d500897b, start = 0, end = 0} indec = {parent = 0x558b40bb63a3, map = 0x558b40bb63a3, start = 0, end = 0} shift_translated = <optimized out> delayed_switch_frame = <optimized out> original_uppercase = <optimized out> original_uppercase_position = <optimized out> dummyflag = false fake_prefixed_keys = 0x0 first_event = 0x0 second_event = <optimized out> #15 0x0000558b3fd1ebea in command_loop_1 () at keyboard.c:1384 cmd = <optimized out> keybuf = {0x5e, 0x558b3fddddd6 <eval_sub+1142>, 0x558b40b63510, 0x558b3fe368dc <exec_byte_code+508>, 0x0, 0x80, 0x0, 0x7fe5d4d0e738, 0x558b3ff8d020 <main_thread.lto_priv>, 0x7fe5d50e62b5, 0x558b40ba93c4, 0x0, 0x558b3ff17314, 0x7fe5da405705, 0x53474e, 0x7fe5d8b31400, 0x7ffe61852c30, 0xc8655754adb42900, 0x9510, 0x558b3ff1dd60, 0x7ffe61852900, 0x60, 0x558b40ba93c4, 0x0, 0x558b3ff8d020 <main_thread.lto_priv>, 0x558b3fd1c925 <top_level_2+725>, 0x558b3ff17314, 0x7fe5d8b31f12 <malloc+434>, 0x15, 0x30} i = <optimized out> prev_modiff = 37 prev_buffer = 0x7fe5d4897708 #16 0x0000558b3fdd81b7 in internal_condition_case (bfun=0x558b3fd1e920 <command_loop_1>, handlers=<optimized out>, hfun=0x558b3fd1c380 <cmd_error>) at eval.c:1474 val = <optimized out> c = 0x558b40bad350 #17 0x0000558b3fd1c63e in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 val = <optimized out> #18 0x0000558b3fdd810c in internal_catch (tag=<optimized out>, func=0x558b3fd1c610 <command_loop_2>, arg=0x90) at eval.c:1197 val = <optimized out> c = 0x558b40bacde0 #19 0x0000558b3fd1e409 in command_loop () at keyboard.c:1111 #20 0x0000558b3ff0d720 in recursive_edit_1.isra.0 () at keyboard.c:720 val = <optimized out> #21 0x0000558b3fd1e8ec in Frecursive_edit () at keyboard.c:803 buffer = <optimized out> #22 0x0000558b3fc12bad in main (argc=<optimized out>, argv=0x7ffe61852d48) at emacs.c:2529 stack_bottom_variable = 0x0 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = <optimized out> skip_args = 0 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = false rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> (gdb)
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Thu, 25 May 2023 10:37:01 GMT) Full text and rfc822 format available.Message #38 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández Hernández <leohdz172 <at> proton.me> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Thu, 25 May 2023 18:35:56 +0800
OK, thanks. Does the crash still happen with this? diff --git a/src/pgtkterm.c b/src/pgtkterm.c index b8c626d81d8..bbe68f04adc 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -6606,8 +6606,7 @@ pgtk_selection_event (GtkWidget *widget, GdkEvent *event, if (event->type == GDK_PROPERTY_NOTIFY) pgtk_handle_property_notify (&event->property); - else if (event->type == GDK_SELECTION_CLEAR - || event->type == GDK_SELECTION_REQUEST) + else if (event->type == GDK_SELECTION_REQUEST) { f = pgtk_find_selection_owner (event->selection.window);
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Thu, 25 May 2023 22:40:02 GMT) Full text and rfc822 format available.Message #41 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Thu, 25 May 2023 20:27:18 +0000
On Thu, May 25, 2023 at 04:35:56AM -0600, Po Lu wrote: > OK, thanks. Does the crash still happen with this? > > diff --git a/src/pgtkterm.c b/src/pgtkterm.c > index b8c626d81d8..bbe68f04adc 100644 > --- a/src/pgtkterm.c > +++ b/src/pgtkterm.c > @@ -6606,8 +6606,7 @@ pgtk_selection_event (GtkWidget *widget, GdkEvent *event, > > if (event->type == GDK_PROPERTY_NOTIFY) > pgtk_handle_property_notify (&event->property); > - else if (event->type == GDK_SELECTION_CLEAR > - || event->type == GDK_SELECTION_REQUEST) > + else if (event->type == GDK_SELECTION_REQUEST) > { > f = pgtk_find_selection_owner (event->selection.window); > The crash does not happen when copying text from outside emacs, however it crashes when pasting text killed from emacs, for example, open `emacs -Q` kill some text and try to paste that text outside emacs (just run `wl-paste`) Here the backtrace: (gdb) bt full #0 0x00007f1daf5d58ec in () at /usr/lib64/libc.so.6 #1 0x00007f1daf5863e2 in raise () at /usr/lib64/libc.so.6 #2 0x00005634e0ec7c68 in terminate_due_to_signal (sig=11, backtrace_limit=<optimized out>) at emacs.c:464 #3 0x00005634e0ec8abb in handle_fatal_signal (sig=11) at sysdep.c:1783 fatal = <optimized out> #4 deliver_thread_signal (handler=<optimized out>, sig=11) at sysdep.c:1775 fatal = <optimized out> #5 deliver_fatal_thread_signal (sig=11) at sysdep.c:1795 fatal = <optimized out> #6 handle_sigsegv (sig=11, siginfo=0x5634e174fcb0 <sigsegv_stack+64528>, arg=<optimized out>) at sysdep.c:1888 fatal = <optimized out> #7 0x00007f1daf586490 in <signal handler called> () at /usr/lib64/libc.so.6 #8 pgtk_handle_selection_request (event=0x7fffdb8c9420) at pgtkselect.c:573 local_selection_time = <optimized out> dpyinfo = 0xe35f53a0 selection = 0x45 selection_symbol = 0x150 target = <optimized out> target_symbol = 0x2a30 property = 0x5d local_selection_data = <optimized out> success = false pushed = false alias = <optimized out> tem = <optimized out> #9 0x00005634e0fe4a75 in pgtk_handle_selection_event (event=0x7fffdb8c9420) at pgtkselect.c:784 event = 0x5634e16fff20 <kbd_buffer+1856> copy = {kind = SELECTION_REQUEST_EVENT, dpyinfo = 0xe35f53a0, requestor = 0x5634e3756330, selection = 0x45, target = 0x4c, property = 0x5d, time = 0} moved_events = <optimized out> #10 process_special_events () at keyboard.c:4449 event = 0x5634e16fff20 <kbd_buffer+1856> copy = {kind = SELECTION_REQUEST_EVENT, dpyinfo = 0xe35f53a0, requestor = 0x5634e3756330, selection = 0x45, target = 0x4c, property = 0x5d, time = 0} moved_events = <optimized out> #11 0x00005634e0fe5bed in swallow_events (do_display=true) at keyboard.c:4489 old_timers_run = <optimized out> #12 0x00005634e110195c in wait_reading_process_output (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=<optimized out>, do_display=<optimized out>, wait_for_cell=<optimized out>, wait_proc=<optimized out>, just_wait_proc=<optimized out>) at process.c:5781 leave = false wrapped = <optimized out> process_skipped = <optimized out> channel_start = <optimized out> child_fd = <optimized out> channel = <optimized out> nfds = <optimized out> Available = {fds_bits = {16, 0 <repeats 15 times>}} Writeok = {fds_bits = {0 <repeats 16 times>}} check_write = true check_delay = <optimized out> no_avail = false xerrno = 11 proc = <optimized out> timeout = {tv_sec = 0, tv_nsec = 0} end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} timer_delay = {tv_sec = <optimized out>, tv_nsec = <optimized out>} got_output_end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} wait = <optimized out> got_some_output = <optimized out> prev_wait_proc_nbytes_read = <optimized out> retry_for_async = <optimized out> count = {bytes = <optimized out>} now = {tv_sec = <optimized out>, tv_nsec = <optimized out>} last_read_channel = -1 #13 0x00005634e0ee23a0 in sit_for (timeout=<optimized out>, reading=<optimized out>, display_option=<optimized out>) at dispnew.c:6264 sec = 30 nsec = 0 do_display = <optimized out> curbuf_eq_winbuf = true nbytes = <optimized out> #14 0x00005634e0fee4f5 in read_char (commandflag=1, map=0x5634e3b7e0e3, prev_event=0x0, used_mouse_menu=0x7fffdb8c9f1b, end_time=0x0) at keyboard.c:2881 delay_level = <optimized out> buffer_size = <optimized out> c = 0x0 local_getcjmp = {{__jmpbuf = {94785120273024, -60015580120531561, 1, 139765404497672, 0, 94785158788803, -60015580189737577, -5999710865743200873}, __mask_was_saved = 0, __saved_mask = {__val = {94785114331872, 2000000000002, 586, 500000, 94785114346639, 0, 40080, 140736876813568, 0, 0, 139765404497677, 0, 94785114190645, 0, 146, 147}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = false orig_kboard = 0x5634e356ffb0 #15 0x00005634e119c3a7 in read_key_sequence.constprop.0 (keybuf=<optimized out>, prevent_redisplay=false, fix_current_buffer=<optimized out>, can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) at keyboard.c:10083 interrupted_kboard = 0x5634e356ffb0 key = <optimized out> used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = <optimized out> t = 0 echo_start = 0 keys_start = 0 current_binding = 0x5634e3b7e0e3 first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = {parent = 0x5634e3406393, map = 0x5634e3406393, start = 0, end = 0} keytran = {parent = 0x7f1dabc0897b, map = 0x7f1dabc0897b, start = 0, end = 0} indec = {parent = 0x5634e34063a3, map = 0x5634e34063a3, start = 0, end = 0} shift_translated = <optimized out> delayed_switch_frame = <optimized out> original_uppercase = <optimized out> original_uppercase_position = <optimized out> dummyflag = false fake_prefixed_keys = 0x0 first_event = 0x0 second_event = <optimized out> #16 0x00005634e0fe1b8a in command_loop_1 () at keyboard.c:1384 cmd = <optimized out> keybuf = {0x5e, 0x5634e10a0676 <eval_sub+1142>, 0x5634e33b3510, 0x5634e10f91fc <exec_byte_code+508>, 0x0, 0x80, 0x0, 0x7f1dab90e738, 0x5634e1250020 <main_thread.lto_priv>, 0x7f1dabce62b5, 0x5634e33f93c4, 0x0, 0x5634e11da314, 0x7f1db0e68705, 0x53474e, 0x7f1daf5e3400, 0x7fffdb8ca510, 0x1cdd2cc6a070d500, 0x9510, 0x5634e11e0d60, 0x7fffdb8ca1e0, 0x60, 0x5634e33f93c4, 0x0, 0x5634e1250020 <main_thread.lto_priv>, 0x5634e0fdf8c5 <top_level_2+725>, 0x5634e11da314, 0x7f1daf5e3f12 <malloc+434>, 0x15, 0x30} i = <optimized out> prev_modiff = 42 prev_buffer = 0x7f1dab497708 #17 0x00005634e109aa57 in internal_condition_case (bfun=0x5634e0fe18c0 <command_loop_1>, handlers=<optimized out>, hfun=0x5634e0fdf320 <cmd_error>) at eval.c:1474 val = <optimized out> c = 0x5634e33fd350 #18 0x00005634e0fdf5de in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 val = <optimized out> #19 0x00005634e109a9ac in internal_catch (tag=<optimized out>, func=0x5634e0fdf5b0 <command_loop_2>, arg=0x90) at eval.c:1197 val = <optimized out> c = 0x5634e33fcde0 #20 0x00005634e0fe13a9 in command_loop () at keyboard.c:1111 #21 0x00005634e11cf8a0 in recursive_edit_1.isra.0 () at keyboard.c:720 val = <optimized out> #22 0x00005634e0fe188c in Frecursive_edit () at keyboard.c:803 buffer = <optimized out> #23 0x00005634e0ed5b9d in main (argc=<optimized out>, argv=0x7fffdb8ca628) at emacs.c:2529 stack_bottom_variable = 0x0 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = <optimized out> skip_args = 0 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = false rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> (gdb) frame 8 #8 pgtk_handle_selection_request (event=0x7fffdb8c9420) at pgtkselect.c:573 573 local_selection_data = LOCAL_SELECTION (selection_symbol, dpyinfo); (gdb) p *event $2 = {kind = SELECTION_REQUEST_EVENT, dpyinfo = 0xe35f53a0, requestor = 0x5634e3756330, selection = 0x45, target = 0x4c, property = 0x5d, time = 0} (gdb) p *event->selection $3 = <incomplete type> (gdb) p *event->dpyinfo Cannot access memory at address 0xe35f53a0 (gdb) p kbd_buffer[1856].sie $4 = {kind = NO_EVENT, dpyinfo = 0x0, requestor = 0x0, selection = 0x0, target = 0x0, property = 0x0, time = 0} (gdb)
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Fri, 26 May 2023 00:35:02 GMT) Full text and rfc822 format available.Message #44 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández Hernández <leohdz172 <at> proton.me> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Fri, 26 May 2023 08:33:52 +0800
Leonardo Hernández Hernández <leohdz172 <at> proton.me> writes: > On Thu, May 25, 2023 at 04:35:56AM -0600, Po Lu wrote: >> OK, thanks. Does the crash still happen with this? >> >> diff --git a/src/pgtkterm.c b/src/pgtkterm.c >> index b8c626d81d8..bbe68f04adc 100644 >> --- a/src/pgtkterm.c >> +++ b/src/pgtkterm.c >> @@ -6606,8 +6606,7 @@ pgtk_selection_event (GtkWidget *widget, GdkEvent *event, >> >> if (event->type == GDK_PROPERTY_NOTIFY) >> pgtk_handle_property_notify (&event->property); >> - else if (event->type == GDK_SELECTION_CLEAR >> - || event->type == GDK_SELECTION_REQUEST) >> + else if (event->type == GDK_SELECTION_REQUEST) >> { >> f = pgtk_find_selection_owner (event->selection.window); >> > > The crash does not happen when copying text from outside emacs, > however it crashes when pasting text killed from emacs, > for example, open `emacs -Q` kill some text and try to paste that > text outside emacs (just run `wl-paste`) What if you apply this change? diff --git a/src/pgtkterm.c b/src/pgtkterm.c index b8c626d81d8..bfad949941b 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -376,11 +376,16 @@ mark_pgtkterm (void) for (i = 0; i < n; i++) { union buffered_input_event *ev = &evq->q[i]; - mark_object (ev->ie.x); - mark_object (ev->ie.y); - mark_object (ev->ie.frame_or_window); - mark_object (ev->ie.arg); - mark_object (ev->ie.device); + + if (ev->ie.type != SELECTION_CLEAR_EVENT + && ev->ie.type != SELECTION_REQUEST_EVENT) + { + mark_object (ev->ie.x); + mark_object (ev->ie.y); + mark_object (ev->ie.frame_or_window); + mark_object (ev->ie.arg); + mark_object (ev->ie.device); + } } for (dpyinfo = x_display_list; dpyinfo;
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Fri, 26 May 2023 02:03:01 GMT) Full text and rfc822 format available.Message #47 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Fri, 26 May 2023 02:01:39 +0000
On Thu, May 25, 2023 at 06:33:52PM -0600, Po Lu wrote: > What if you apply this change? > > diff --git a/src/pgtkterm.c b/src/pgtkterm.c > index b8c626d81d8..bfad949941b 100644 > --- a/src/pgtkterm.c > +++ b/src/pgtkterm.c > @@ -376,11 +376,16 @@ mark_pgtkterm (void) > for (i = 0; i < n; i++) > { > union buffered_input_event *ev = &evq->q[i]; > - mark_object (ev->ie.x); > - mark_object (ev->ie.y); > - mark_object (ev->ie.frame_or_window); > - mark_object (ev->ie.arg); > - mark_object (ev->ie.device); > + > + if (ev->ie.type != SELECTION_CLEAR_EVENT > + && ev->ie.type != SELECTION_REQUEST_EVENT) > + { > + mark_object (ev->ie.x); > + mark_object (ev->ie.y); > + mark_object (ev->ie.frame_or_window); > + mark_object (ev->ie.arg); > + mark_object (ev->ie.device); > + } > } > > for (dpyinfo = x_display_list; dpyinfo; I did not apply the patch, instead I updated to 42052686752e399e778d33401dd621afbac0071d which is basically the same patch. It still crashes (the same way I reported first). Here the backtrace: (gdb) bt full #0 0x00007f1c8c2ad8ec in () at /usr/lib64/libc.so.6 #1 0x00007f1c8c25e3e2 in raise () at /usr/lib64/libc.so.6 #2 0x0000558328bcdc78 in terminate_due_to_signal (sig=11, backtrace_limit=<optimized out>) at emacs.c:464 #3 0x0000558328bceacb in handle_fatal_signal (sig=11) at sysdep.c:1783 fatal = <optimized out> #4 deliver_thread_signal (handler=<optimized out>, sig=11) at sysdep.c:1775 fatal = <optimized out> #5 deliver_fatal_thread_signal (sig=11) at sysdep.c:1795 fatal = <optimized out> #6 handle_sigsegv (sig=11, siginfo=0x558329455cb0 <sigsegv_stack+64496>, arg=<optimized out>) at sysdep.c:1888 fatal = <optimized out> #7 0x00007f1c8c25e490 in <signal handler called> () at /usr/lib64/libc.so.6 #8 0x0000558328e86fb9 in pgtk_handle_selection_clear (event=<optimized out>) at pgtkselect.c:742 selection = <optimized out> changed_owner_time = 0 selection_symbol = <optimized out> local_selection_data = <optimized out> local_selection_time = <optimized out> dpyinfo = 0x29baeab0 Vselection_alist = <optimized out> #9 0x0000558328cea9c6 in pgtk_handle_selection_event (event=0x7fffe2a229b0) at pgtkselect.c:782 event = 0x558329405c80 <kbd_buffer+1152> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x29baeab0, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} moved_events = <optimized out> #10 process_special_events () at keyboard.c:4449 event = 0x558329405c80 <kbd_buffer+1152> copy = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x29baeab0, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} moved_events = <optimized out> #11 0x0000558328cebbcd in swallow_events (do_display=true) at keyboard.c:4489 old_timers_run = <optimized out> #12 0x0000558328e0789c in wait_reading_process_output (time_limit=<optimized out>, nsecs=<optimized out>, read_kbd=<optimized out>, do_display=<optimized out>, wait_for_cell=<optimized out>, wait_proc=<optimized out>, just_wait_proc=<optimized out>) at process.c:5781 leave = false wrapped = <optimized out> process_skipped = <optimized out> channel_start = <optimized out> child_fd = <optimized out> channel = <optimized out> nfds = <optimized out> Available = {fds_bits = {16, 0 <repeats 15 times>}} Writeok = {fds_bits = {0 <repeats 16 times>}} check_write = true check_delay = <optimized out> no_avail = false xerrno = 11 proc = <optimized out> timeout = {tv_sec = 0, tv_nsec = 0} end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} timer_delay = {tv_sec = <optimized out>, tv_nsec = <optimized out>} got_output_end_time = {tv_sec = <optimized out>, tv_nsec = <optimized out>} wait = <optimized out> got_some_output = <optimized out> prev_wait_proc_nbytes_read = <optimized out> retry_for_async = <optimized out> count = {bytes = <optimized out>} now = {tv_sec = <optimized out>, tv_nsec = <optimized out>} last_read_channel = -1 #13 0x0000558328be8350 in sit_for (timeout=<optimized out>, reading=<optimized out>, display_option=<optimized out>) at dispnew.c:6264 sec = 30 nsec = 0 do_display = <optimized out> curbuf_eq_winbuf = true nbytes = <optimized out> #14 0x0000558328cf44d5 in read_char (commandflag=1, map=0x55832a17ef73, prev_event=0x0, used_mouse_menu=0x7fffe2a234ab, end_time=0x0) at keyboard.c:2881 delay_level = <optimized out> buffer_size = <optimized out> c = 0x0 local_getcjmp = {{__jmpbuf = {94021820932736, -961532412328081999, 1, 139760518129416, 0, 94021828021619, -961532411696839247, -6458610983165819471}, __mask_was_saved = 0, __saved_mask = {__val = {94021814991392, 94021835287715, 586, 2, 94021815006159, 140736995668736, 40128, 140736995668624, 0, 0, 139760518129421, 0, 94021835287715, 0, 146, 147}}}} save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, __saved_mask = {__val = {0 <repeats 16 times>}}}} tem = <optimized out> save = <optimized out> previous_echo_area_message = 0x0 also_record = 0x0 reread = false recorded = false polling_stopped_here = false orig_kboard = 0x558329b292d0 #15 0x0000558328ea2417 in read_key_sequence.constprop.0 (keybuf=<optimized out>, prevent_redisplay=false, fix_current_buffer=<optimized out>, can_return_switch_frame=<optimized out>, dont_downcase_last=<optimized out>, prompt=<optimized out>) at keyboard.c:10083 interrupted_kboard = 0x558329b292d0 key = <optimized out> used_mouse_menu = false echo_local_start = 0 last_real_key_start = 0 keys_local_start = 0 new_binding = <optimized out> t = 0 echo_start = 0 keys_start = 0 current_binding = 0x55832a17ef73 first_unbound = 31 mock_input = 0 used_mouse_menu_history = {false <repeats 30 times>} fkey = {parent = 0x5583299bd393, map = 0x5583299bd393, start = 0, end = 0} keytran = {parent = 0x7f1c888080f3, map = 0x7f1c888080f3, start = 0, end = 0} indec = {parent = 0x5583299bd3a3, map = 0x5583299bd3a3, start = 0, end = 0} shift_translated = <optimized out> delayed_switch_frame = <optimized out> original_uppercase = <optimized out> original_uppercase_position = <optimized out> dummyflag = false fake_prefixed_keys = 0x0 first_event = 0x0 second_event = <optimized out> #16 0x0000558328ce7b6a in command_loop_1 () at keyboard.c:1384 cmd = <optimized out> keybuf = {0x5e, 0x558328da6526 <eval_sub+1142>, 0x55832996a510, 0x558328dff13c <exec_byte_code+508>, 0x0, 0x80, 0x0, 0x7f1c8850dbc8, 0x558328f56020 <main_thread.lto_priv>, 0x7f1c888e52e2, 0x5583299b03c4, 0x0, 0x558328ee0314, 0x7f1c8dbc3705, 0x5441465f53554244, 0x7f1c8c2bb400, 0x7fffe2a23aa0, 0xa6ec1548f4ad3200, 0x9540, 0x558328ee6d80, 0x7fffe2a23770, 0x60, 0x5583299b03c4, 0x0, 0x558328f56020 <main_thread.lto_priv>, 0x558328ce58a5 <top_level_2+725>, 0x558328ee0314, 0x7f1c8c2bbf12 <malloc+434>, 0x15, 0x30} i = <optimized out> prev_modiff = 34 prev_buffer = 0x7f1c88096708 #17 0x0000558328da0907 in internal_condition_case (bfun=0x558328ce78a0 <command_loop_1>, handlers=<optimized out>, hfun=0x558328ce5300 <cmd_error>) at eval.c:1474 val = <optimized out> c = 0x5583299b4350 #18 0x0000558328ce55be in command_loop_2 (handlers=handlers <at> entry=0x90) at keyboard.c:1133 val = <optimized out> #19 0x0000558328da085c in internal_catch (tag=<optimized out>, func=0x558328ce5590 <command_loop_2>, arg=0x90) at eval.c:1197 val = <optimized out> c = 0x5583299b3de0 #20 0x0000558328ce7389 in command_loop () at keyboard.c:1111 #21 0x0000558328ed5910 in recursive_edit_1.isra.0 () at keyboard.c:720 val = <optimized out> #22 0x0000558328ce786c in Frecursive_edit () at keyboard.c:803 buffer = <optimized out> #23 0x0000558328bdbbad in main (argc=<optimized out>, argv=0x7fffe2a23bb8) at emacs.c:2529 stack_bottom_variable = 0x0 no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 dump_mode = <optimized out> skip_args = 0 temacs = 0x0 attempt_load_pdump = <optimized out> only_version = false rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615} lc_all = <optimized out> sockfd = -1 module_assertions = <optimized out> (gdb) frame 9 #9 0x0000558328cea9c6 in pgtk_handle_selection_event (event=0x7fffe2a229b0) at pgtkselect.c:782 782 pgtk_handle_selection_clear (event); (gdb) p *event $1 = {kind = SELECTION_CLEAR_EVENT, dpyinfo = 0x29baeab0, requestor = 0x0, selection = 0x45, target = 0x0, property = 0x0, time = 0} (gdb) p *event->selection $2 = <incomplete type> (gdb) p *event->dpyinfo Cannot access memory at address 0x29baeab0 (gdb) p kbd_buffer[1152].sie $3 = {kind = NO_EVENT, dpyinfo = 0x0, requestor = 0x0, selection = 0x0, target = 0x0, property = 0x0, time = 0} (gdb) p x_display_list $4 = (struct pgtk_display_info *) 0x558329baeab0 (gdb) p *x_display_list $5 = {next = 0x0, terminal = 0x558329a8e7f0, {gdpy = 0x558329ac4b10, display = 0x558329ac4b10}, name_list_element = 0x5583299bd383, reference_count = 1, x_id = 1, x_id_name = 0x558329b781a0 "emacs <at> gentoo", n_fonts = 5, smallest_char_width = 2, smallest_font_height = 15, bitmaps = 0x0, bitmaps_size = 0, bitmaps_last = 0, resx = 96, resy = 96, grabbed = 0, n_planes = 32, color_p = 1, icon_bitmap_id = -2, root_window = 42, rdb = 0x0, vertical_scroll_bar_cursor = 0x558329b49230, horizontal_scroll_bar_cursor = 0x558329bfbe30, mouse_highlight = {mouse_face_beg_row = -1, mouse_face_beg_col = -1, mouse_face_beg_x = 0, mouse_face_end_row = -1, mouse_face_end_col = -1, mouse_face_end_x = 0, mouse_face_window = 0x0, mouse_face_face_id = 0, mouse_face_overlay = 0x0, mouse_face_mouse_frame = 0x0, mouse_face_mouse_x = 0, mouse_face_mouse_y = 0, mouse_face_past_end = false, mouse_face_defer = false, mouse_face_hidden = false}, highlight_frame = 0x0, x_focus_frame = 0x0, x_focus_event_frame = 0x0, last_mouse_frame = 0x0, last_mouse_motion_frame = 0x0, last_mouse_motion_x = 0, last_mouse_motion_y = 0, last_mouse_glyph = {x = 0, y = 0, width = 0, height = 0}, last_mouse_movement_time = 0, last_user_time = 10173018, last_mouse_scroll_bar = 0x0, invisible_cursor = 0x558329bb7b30, xg_cursor = 0x558329bb72b0, devices = 0x558329c0e860, last_mouse_glyph_frame = 0x0, last_click_event = 0x0, im = {context = 0x558329b952b0, focused_frame = 0x0}, scroll = {acc_x = 0, acc_y = 0, x_per_char = 1, y_per_line = 1}, connection = 4} (gdb)
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Fri, 26 May 2023 03:25:01 GMT) Full text and rfc822 format available.Message #50 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com> To: Leonardo Hernández Hernández <leohdz172 <at> proton.me> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Fri, 26 May 2023 11:24:31 +0800
Would you please: (gdb) disassemble pgtk_selection_event (gdb) disassemble evq_enqueue (gdb) disassemble evq_flush thanks.
bug-gnu-emacs <at> gnu.org
:bug#63614
; Package emacs
.
(Fri, 26 May 2023 03:30:02 GMT) Full text and rfc822 format available.Message #53 received at 63614 <at> debbugs.gnu.org (full text, mbox):
From: Leonardo Hernández Hernández <leohdz172 <at> proton.me> To: Po Lu <luangruo <at> yahoo.com> Cc: 63614 <at> debbugs.gnu.org Subject: Re: bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Date: Fri, 26 May 2023 03:29:13 +0000
On Thu, May 25, 2023 at 09:24:31PM -0600, Po Lu wrote: > Would you please: > > (gdb) disassemble pgtk_selection_event > (gdb) disassemble evq_enqueue > (gdb) disassemble evq_flush > > thanks. (gdb) disassemble pgtk_selection_event Dump of assembler code for function pgtk_selection_event: 0x0000558328e80840 <+0>: push %rbp 0x0000558328e80841 <+1>: mov %rsp,%rbp 0x0000558328e80844 <+4>: push %r14 0x0000558328e80846 <+6>: push %r13 0x0000558328e80848 <+8>: push %r12 0x0000558328e8084a <+10>: push %rbx 0x0000558328e8084b <+11>: mov %rsi,%r12 0x0000558328e8084e <+14>: sub $0x50,%rsp 0x0000558328e80852 <+18>: mov %fs:0x28,%rax 0x0000558328e8085b <+27>: mov %rax,0x48(%rsp) 0x0000558328e80860 <+32>: mov (%rsi),%eax 0x0000558328e80862 <+34>: cmp $0x10,%eax 0x0000558328e80865 <+37>: je 0x558328e80920 <pgtk_selection_event+224> 0x0000558328e8086b <+43>: lea -0x11(%rax),%edx 0x0000558328e8086e <+46>: cmp $0x1,%edx 0x0000558328e80871 <+49>: jbe 0x558328e808b0 <pgtk_selection_event+112> 0x0000558328e80873 <+51>: cmp $0x13,%eax 0x0000558328e80876 <+54>: je 0x558328e809a0 <pgtk_selection_event+352> 0x0000558328e8087c <+60>: xor %eax,%eax 0x0000558328e8087e <+62>: xchg %ax,%ax 0x0000558328e80880 <+64>: mov 0x48(%rsp),%rdx 0x0000558328e80885 <+69>: sub %fs:0x28,%rdx 0x0000558328e8088e <+78>: jne 0x558328e80a90 <pgtk_selection_event+592> 0x0000558328e80894 <+84>: add $0x50,%rsp 0x0000558328e80898 <+88>: pop %rbx 0x0000558328e80899 <+89>: pop %r12 0x0000558328e8089b <+91>: pop %r13 0x0000558328e8089d <+93>: pop %r14 0x0000558328e8089f <+95>: pop %rbp 0x0000558328e808a0 <+96>: ret 0x0000558328e808a1 <+97>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e808ac <+108>: nopl 0x0(%rax) 0x0000558328e808b0 <+112>: mov 0x54d951(%rip),%rbx # 0x5583293ce208 <Vframe_list> 0x0000558328e808b7 <+119>: mov 0x8(%rsi),%r14 0x0000558328e808bb <+123>: lea -0x3(%rbx),%eax 0x0000558328e808be <+126>: test $0x7,%al 0x0000558328e808c0 <+128>: je 0x558328e808ff <pgtk_selection_event+191> 0x0000558328e808c2 <+130>: jmp 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e808c4 <+132>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e808cf <+143>: nop 0x0000558328e808d0 <+144>: mov 0x1d3(%r13),%rax 0x0000558328e808d7 <+151>: mov 0x198(%rax),%rdi 0x0000558328e808de <+158>: call 0x558328bc8b10 <gtk_widget_get_window <at> plt> 0x0000558328e808e3 <+163>: cmp %rax,%r14 0x0000558328e808e6 <+166>: je 0x558328e809d2 <pgtk_selection_event+402> 0x0000558328e808ec <+172>: nopl 0x0(%rax) 0x0000558328e808f0 <+176>: mov 0x5(%rbx),%rbx 0x0000558328e808f4 <+180>: lea -0x3(%rbx),%eax 0x0000558328e808f7 <+183>: test $0x7,%al 0x0000558328e808f9 <+185>: jne 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e808ff <+191>: mov -0x3(%rbx),%r13 0x0000558328e80903 <+195>: movzbl 0x106(%r13),%eax 0x0000558328e8090b <+203>: and $0xe,%eax 0x0000558328e8090e <+206>: cmp $0xc,%al 0x0000558328e80910 <+208>: jne 0x558328e808f0 <pgtk_selection_event+176> 0x0000558328e80912 <+210>: jmp 0x558328e808d0 <pgtk_selection_event+144> 0x0000558328e80914 <+212>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e8091f <+223>: nop 0x0000558328e80920 <+224>: mov 0x8(%rsi),%rdi 0x0000558328e80924 <+228>: call 0x558328bc8140 <gdk_window_get_display <at> plt> 0x0000558328e80929 <+233>: mov 0x5e6fd8(%rip),%rdx # 0x558329467908 <property_change_wait_list> 0x0000558328e80930 <+240>: test %rdx,%rdx 0x0000558328e80933 <+243>: je 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e80939 <+249>: cmpb $0x0,0x24(%rdx) 0x0000558328e8093d <+253>: je 0x558328e80953 <pgtk_selection_event+275> 0x0000558328e8093f <+255>: nop 0x0000558328e80940 <+256>: mov 0x28(%rdx),%rdx 0x0000558328e80944 <+260>: test %rdx,%rdx 0x0000558328e80947 <+263>: je 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e8094d <+269>: cmpb $0x0,0x24(%rdx) 0x0000558328e80951 <+273>: jne 0x558328e80940 <pgtk_selection_event+256> 0x0000558328e80953 <+275>: mov 0x18(%r12),%rcx 0x0000558328e80958 <+280>: cmp %rcx,0x18(%rdx) 0x0000558328e8095c <+284>: jne 0x558328e80940 <pgtk_selection_event+256> 0x0000558328e8095e <+286>: mov 0x8(%r12),%rdi 0x0000558328e80963 <+291>: cmp %rdi,0x10(%rdx) 0x0000558328e80967 <+295>: jne 0x558328e80940 <pgtk_selection_event+256> 0x0000558328e80969 <+297>: cmp 0x8(%rdx),%rax 0x0000558328e8096d <+301>: jne 0x558328e80940 <pgtk_selection_event+256> 0x0000558328e8096f <+303>: mov 0x24(%r12),%esi 0x0000558328e80974 <+308>: cmp %esi,0x20(%rdx) 0x0000558328e80977 <+311>: jne 0x558328e80940 <pgtk_selection_event+256> 0x0000558328e80979 <+313>: cmp %rdx,0x5e6f80(%rip) # 0x558329467900 <property_change_reply_object> 0x0000558328e80980 <+320>: movb $0x1,0x24(%rdx) 0x0000558328e80984 <+324>: jne 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e8098a <+330>: mov 0x5e6f27(%rip),%rax # 0x5583294678b8 <property_change_reply.lto_priv.0> 0x0000558328e80991 <+337>: movq $0x30,-0x3(%rax) 0x0000558328e80999 <+345>: jmp 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e8099e <+350>: xchg %ax,%ax 0x0000558328e809a0 <+352>: mov 0x5e6f21(%rip),%rax # 0x5583294678c8 <reading_which_selection.lto_priv.0> 0x0000558328e809a7 <+359>: cmp %rax,0x18(%rsi) 0x0000558328e809ab <+363>: jne 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e809b1 <+369>: cmpq $0x1,0x28(%rsi) 0x0000558328e809b6 <+374>: mov 0x5e6f03(%rip),%rdx # 0x5583294678c0 <reading_selection_reply.lto_priv.0> 0x0000558328e809bd <+381>: sbb %rax,%rax 0x0000558328e809c0 <+384>: and $0x90,%eax 0x0000558328e809c5 <+389>: add $0x30,%rax 0x0000558328e809c9 <+393>: mov %rax,-0x3(%rdx) 0x0000558328e809cd <+397>: jmp 0x558328e8087c <pgtk_selection_event+60> 0x0000558328e809d2 <+402>: mov (%r12),%eax 0x0000558328e809d6 <+406>: vpxor %xmm0,%xmm0,%xmm0 0x0000558328e809da <+410>: movq $0x30,0x38(%rsp) 0x0000558328e809e3 <+419>: vextracti128 $0x1,%ymm0,0x10(%rsp) 0x0000558328e809eb <+427>: vmovdqa %xmm0,(%rsp) 0x0000558328e809f0 <+432>: vextracti128 $0x1,%ymm0,0x18(%rsp) 0x0000558328e809f8 <+440>: vextracti128 $0x1,%ymm0,0x28(%rsp) 0x0000558328e80a00 <+448>: cmp $0x11,%eax 0x0000558328e80a03 <+451>: je 0x558328e80a62 <pgtk_selection_event+546> 0x0000558328e80a05 <+453>: mov 0x1d3(%r13),%rdx 0x0000558328e80a0c <+460>: movw $0xa,(%rsp) 0x0000558328e80a12 <+466>: mov 0x138(%rdx),%rdx 0x0000558328e80a19 <+473>: mov %rdx,0x8(%rsp) 0x0000558328e80a1e <+478>: mov 0x18(%r12),%rdx 0x0000558328e80a23 <+483>: mov %rdx,0x18(%rsp) 0x0000558328e80a28 <+488>: mov 0x30(%r12),%edx 0x0000558328e80a2d <+493>: mov %edx,0x30(%rsp) 0x0000558328e80a31 <+497>: cmp $0x12,%eax 0x0000558328e80a34 <+500>: jne 0x558328e80a4d <pgtk_selection_event+525> 0x0000558328e80a36 <+502>: vmovdqu 0x20(%r12),%xmm1 0x0000558328e80a3d <+509>: mov 0x38(%r12),%rax 0x0000558328e80a42 <+514>: mov %rax,0x10(%rsp) 0x0000558328e80a47 <+519>: vmovdqa %xmm1,0x20(%rsp) 0x0000558328e80a4d <+525>: mov %rsp,%rdi 0x0000558328e80a50 <+528>: vzeroupper 0x0000558328e80a53 <+531>: call 0x558328e78630 <evq_enqueue> 0x0000558328e80a58 <+536>: mov $0x1,%eax 0x0000558328e80a5d <+541>: jmp 0x558328e80880 <pgtk_selection_event+64> 0x0000558328e80a62 <+546>: mov 0x1d3(%r13),%rax 0x0000558328e80a69 <+553>: movw $0xb,(%rsp) 0x0000558328e80a6f <+559>: mov 0x138(%rax),%rax 0x0000558328e80a76 <+566>: mov %rax,0x8(%rsp) 0x0000558328e80a7b <+571>: mov 0x18(%r12),%rax 0x0000558328e80a80 <+576>: mov %rax,0x18(%rsp) 0x0000558328e80a85 <+581>: mov 0x30(%r12),%eax 0x0000558328e80a8a <+586>: mov %eax,0x30(%rsp) 0x0000558328e80a8e <+590>: jmp 0x558328e80a4d <pgtk_selection_event+525> 0x0000558328e80a90 <+592>: call 0x558328bc6230 <__stack_chk_fail <at> plt> End of assembler dump. (gdb) disassemble evq_enqueue Dump of assembler code for function evq_enqueue: Address range 0x558328e78630 to 0x558328e78865: 0x0000558328e78630 <+0>: mov 0x5e3356(%rip),%edx # 0x55832945b98c <event_q.lto_priv.0+12> 0x0000558328e78636 <+6>: push %rbp 0x0000558328e78637 <+7>: mov %rsp,%rbp 0x0000558328e7863a <+10>: push %r14 0x0000558328e7863c <+12>: push %r13 0x0000558328e7863e <+14>: push %r12 0x0000558328e78640 <+16>: mov %rdi,%r12 0x0000558328e78643 <+19>: push %rbx 0x0000558328e78644 <+20>: test %edx,%edx 0x0000558328e78646 <+22>: je 0x558328e78790 <evq_enqueue+352> 0x0000558328e7864c <+28>: movslq 0x5e3335(%rip),%rax # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e78653 <+35>: mov 0x5e3326(%rip),%rbx # 0x55832945b980 <event_q.lto_priv.0> 0x0000558328e7865a <+42>: cmp %eax,%edx 0x0000558328e7865c <+44>: jle 0x558328e78710 <evq_enqueue+224> 0x0000558328e78662 <+50>: vmovdqu (%r12),%ymm0 0x0000558328e78668 <+56>: lea 0x1(%rax),%edx 0x0000558328e7866b <+59>: shl $0x6,%rax 0x0000558328e7866f <+63>: add %rbx,%rax 0x0000558328e78672 <+66>: mov %edx,0x5e3310(%rip) # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e78678 <+72>: vmovdqu %ymm0,(%rax) 0x0000558328e7867c <+76>: vmovdqu 0x20(%r12),%ymm1 0x0000558328e78683 <+83>: vmovdqu %ymm1,0x20(%rax) 0x0000558328e78688 <+88>: movzwl (%r12),%eax 0x0000558328e7868d <+93>: sub $0xa,%eax 0x0000558328e78690 <+96>: cmp $0x1,%ax 0x0000558328e78694 <+100>: jbe 0x558328e786f8 <evq_enqueue+200> 0x0000558328e78696 <+102>: mov 0x28(%r12),%rax 0x0000558328e7869b <+107>: lea -0x5(%rax),%edx 0x0000558328e7869e <+110>: and $0x7,%edx 0x0000558328e786a1 <+113>: jne 0x558328e786f8 <evq_enqueue+200> 0x0000558328e786a3 <+115>: movabs $0x400000003f000000,%rdx 0x0000558328e786ad <+125>: and -0x5(%rax),%rdx 0x0000558328e786b1 <+129>: movabs $0x400000000b000000,%rcx 0x0000558328e786bb <+139>: cmp %rcx,%rdx 0x0000558328e786be <+142>: je 0x558328e78800 <evq_enqueue+464> 0x0000558328e786c4 <+148>: sub $0x1000000,%rcx 0x0000558328e786cb <+155>: cmp %rcx,%rdx 0x0000558328e786ce <+158>: jne 0x558328e786f8 <evq_enqueue+200> 0x0000558328e786d0 <+160>: sub $0x5,%rax 0x0000558328e786d4 <+164>: mov 0x1d8(%rax),%rax 0x0000558328e786db <+171>: mov 0x20(%r12),%rdx 0x0000558328e786e0 <+176>: mov 0x138(%rax),%rax 0x0000558328e786e7 <+183>: mov 0x130(%rax),%ecx 0x0000558328e786ed <+189>: cmp %rdx,%rcx 0x0000558328e786f0 <+192>: jae 0x558328e786f8 <evq_enqueue+200> 0x0000558328e786f2 <+194>: mov %edx,0x130(%rax) 0x0000558328e786f8 <+200>: vzeroupper 0x0000558328e786fb <+203>: pop %rbx 0x0000558328e786fc <+204>: mov $0x1d,%edi 0x0000558328e78701 <+209>: pop %r12 0x0000558328e78703 <+211>: pop %r13 0x0000558328e78705 <+213>: pop %r14 0x0000558328e78707 <+215>: pop %rbp 0x0000558328e78708 <+216>: jmp 0x558328bc88b0 <raise <at> plt> 0x0000558328e7870d <+221>: nopl (%rax) 0x0000558328e78710 <+224>: mov %edx,%r13d 0x0000558328e78713 <+227>: shr $0x1f,%r13d 0x0000558328e78717 <+231>: add %edx,%r13d 0x0000558328e7871a <+234>: sar %r13d 0x0000558328e7871d <+237>: add %edx,%r13d 0x0000558328e78720 <+240>: mov %r13d,0x5e3265(%rip) # 0x55832945b98c <event_q.lto_priv.0+12> 0x0000558328e78727 <+247>: movslq %r13d,%r13 0x0000558328e7872a <+250>: shl $0x6,%r13 0x0000558328e7872e <+254>: test %rbx,%rbx 0x0000558328e78731 <+257>: je 0x558328e78810 <evq_enqueue+480> 0x0000558328e78737 <+263>: mov %rbx,%rdi 0x0000558328e7873a <+266>: mov %r13,%rsi 0x0000558328e7873d <+269>: call 0x558328bc5560 <realloc <at> plt> 0x0000558328e78742 <+274>: mov %rax,%r14 0x0000558328e78745 <+277>: mov %rax,%rbx 0x0000558328e78748 <+280>: or %r13,%r14 0x0000558328e7874b <+283>: jne 0x558328e7885d <evq_enqueue+557> 0x0000558328e78751 <+289>: mov $0x8,%edi 0x0000558328e78756 <+294>: call 0x558328bc8b60 <malloc <at> plt> 0x0000558328e7875b <+299>: mov %rax,%rbx 0x0000558328e7875e <+302>: test %rbx,%rbx 0x0000558328e78761 <+305>: je 0x558328bd7e27 <evq_enqueue-2754569> 0x0000558328e78767 <+311>: cmpb $0x0,0x555aee(%rip) # 0x5583293ce25c <profiler_memory_running> 0x0000558328e7876e <+318>: jne 0x558328e78850 <evq_enqueue+544> 0x0000558328e78774 <+324>: movslq 0x5e320d(%rip),%rax # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e7877b <+331>: mov %rbx,0x5e31fe(%rip) # 0x55832945b980 <event_q.lto_priv.0> 0x0000558328e78782 <+338>: jmp 0x558328e78662 <evq_enqueue+50> 0x0000558328e78787 <+343>: nopw 0x0(%rax,%rax,1) 0x0000558328e78790 <+352>: mov $0x100,%edi 0x0000558328e78795 <+357>: movl $0x4,0x5e31ed(%rip) # 0x55832945b98c <event_q.lto_priv.0+12> 0x0000558328e7879f <+367>: call 0x558328bc8b60 <malloc <at> plt> 0x0000558328e787a4 <+372>: mov %rax,%rbx 0x0000558328e787a7 <+375>: test %rax,%rax 0x0000558328e787aa <+378>: je 0x558328bd7e1d <evq_enqueue.lto_priv.0.cold> 0x0000558328e787b0 <+384>: cmpb $0x0,0x555aa5(%rip) # 0x5583293ce25c <profiler_memory_running> 0x0000558328e787b7 <+391>: mov $0x4,%edx 0x0000558328e787bc <+396>: jne 0x558328e78830 <evq_enqueue+512> 0x0000558328e787be <+398>: movslq 0x5e31c3(%rip),%rax # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e787c5 <+405>: mov %rbx,0x5e31b4(%rip) # 0x55832945b980 <event_q.lto_priv.0> 0x0000558328e787cc <+412>: cmp %edx,%eax 0x0000558328e787ce <+414>: jl 0x558328e78662 <evq_enqueue+50> 0x0000558328e787d4 <+420>: mov %edx,%r13d 0x0000558328e787d7 <+423>: shr $0x1f,%r13d 0x0000558328e787db <+427>: add %edx,%r13d 0x0000558328e787de <+430>: sar %r13d 0x0000558328e787e1 <+433>: add %edx,%r13d 0x0000558328e787e4 <+436>: mov %r13d,0x5e31a1(%rip) # 0x55832945b98c <event_q.lto_priv.0+12> 0x0000558328e787eb <+443>: movslq %r13d,%r13 0x0000558328e787ee <+446>: shl $0x6,%r13 0x0000558328e787f2 <+450>: jmp 0x558328e78737 <evq_enqueue+263> 0x0000558328e787f7 <+455>: nopw 0x0(%rax,%rax,1) 0x0000558328e78800 <+464>: mov 0x3(%rax),%rax 0x0000558328e78804 <+468>: sub $0x5,%rax 0x0000558328e78808 <+472>: jmp 0x558328e786d4 <evq_enqueue+164> 0x0000558328e7880d <+477>: nopl (%rax) 0x0000558328e78810 <+480>: mov %r13,%rdi 0x0000558328e78813 <+483>: mov %r13,%r14 0x0000558328e78816 <+486>: call 0x558328bc8b60 <malloc <at> plt> 0x0000558328e7881b <+491>: mov %rax,%rbx 0x0000558328e7881e <+494>: jmp 0x558328e7875e <evq_enqueue+302> 0x0000558328e78823 <+499>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e7882e <+510>: xchg %ax,%ax 0x0000558328e78830 <+512>: mov $0x100,%edi 0x0000558328e78835 <+517>: call 0x558328e344c0 <malloc_probe> 0x0000558328e7883a <+522>: mov 0x5e314c(%rip),%edx # 0x55832945b98c <event_q.lto_priv.0+12> 0x0000558328e78840 <+528>: jmp 0x558328e787be <evq_enqueue+398> 0x0000558328e78845 <+533>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e78850 <+544>: mov %r14,%rdi 0x0000558328e78853 <+547>: call 0x558328e344c0 <malloc_probe> 0x0000558328e78858 <+552>: jmp 0x558328e78774 <evq_enqueue+324> 0x0000558328e7885d <+557>: mov %r13,%r14 0x0000558328e78860 <+560>: jmp 0x558328e7875e <evq_enqueue+302> Address range 0x558328bd7e1d to 0x558328bd7e2f: 0x0000558328bd7e1d <-2754579>: mov $0x100,%edi 0x0000558328bd7e22 <-2754574>: call 0x558328bd00da <memory_full> 0x0000558328bd7e27 <-2754569>: mov %r14,%rdi 0x0000558328bd7e2a <-2754566>: call 0x558328bd00da <memory_full> End of assembler dump. (gdb) disassemble evq_flush Dump of assembler code for function evq_flush: Address range 0x558328e725c0 to 0x558328e72a82: 0x0000558328e725c0 <+0>: push %r15 0x0000558328e725c2 <+2>: push %r14 0x0000558328e725c4 <+4>: push %r13 0x0000558328e725c6 <+6>: push %r12 0x0000558328e725c8 <+8>: push %rbp 0x0000558328e725c9 <+9>: push %rbx 0x0000558328e725ca <+10>: sub $0xc8,%rsp 0x0000558328e725d1 <+17>: mov 0x5e93b1(%rip),%edx # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e725d7 <+23>: mov %fs:0x28,%rax 0x0000558328e725e0 <+32>: mov %rax,0xb8(%rsp) 0x0000558328e725e8 <+40>: xor %eax,%eax 0x0000558328e725ea <+42>: test %edx,%edx 0x0000558328e725ec <+44>: jle 0x558328e7288f <evq_flush+719> 0x0000558328e725f2 <+50>: mov %rdi,%rbx 0x0000558328e725f5 <+53>: xor %r14d,%r14d 0x0000558328e725f8 <+56>: jmp 0x558328e726cf <evq_flush+271> 0x0000558328e725fd <+61>: nopl (%rax) 0x0000558328e72600 <+64>: mov 0x5d31f9(%rip),%rdx # 0x558329445800 <kbd_store_ptr> 0x0000558328e72607 <+71>: lea 0x5d31b2(%rip),%rcx # 0x5583294457c0 <kbd_buffer+262080> 0x0000558328e7260e <+78>: lea -0x3ffc0(%rcx),%rsi 0x0000558328e72615 <+85>: cmp %rcx,%rdx 0x0000558328e72618 <+88>: mov 0x5d31e9(%rip),%rcx # 0x558329445808 <kbd_fetch_ptr> 0x0000558328e7261f <+95>: lea 0x40(%rdx),%rax 0x0000558328e72623 <+99>: cmove %rsi,%rax 0x0000558328e72627 <+103>: cmp %rax,%rcx 0x0000558328e7262a <+106>: je 0x558328e72679 <evq_flush+185> 0x0000558328e7262c <+108>: vmovdqa 0x20(%rsp),%xmm4 0x0000558328e72632 <+114>: vmovdqa 0x10(%rsp),%xmm5 0x0000558328e72638 <+120>: vmovd %xmm0,(%rdx) 0x0000558328e7263c <+124>: vmovq %xmm1,0x4(%rdx) 0x0000558328e72641 <+129>: mov %rax,0x5d31b8(%rip) # 0x558329445800 <kbd_store_ptr> 0x0000558328e72648 <+136>: sub %rcx,%rax 0x0000558328e7264b <+139>: mov %r12,0x20(%rdx) 0x0000558328e7264f <+143>: sar $0x6,%rax 0x0000558328e72653 <+147>: mov %rbp,0x38(%rdx) 0x0000558328e72657 <+151>: vmovdqu %xmm4,0x10(%rdx) 0x0000558328e7265c <+156>: vmovdqu %xmm5,0x28(%rdx) 0x0000558328e72661 <+161>: mov %eax,%edx 0x0000558328e72663 <+163>: sar $0x13,%edx 0x0000558328e72666 <+166>: and $0x1000,%edx 0x0000558328e7266c <+172>: add %edx,%eax 0x0000558328e7266e <+174>: cmp $0x800,%eax 0x0000558328e72673 <+179>: jg 0x558328e72820 <evq_flush+608> 0x0000558328e72679 <+185>: cmpq $0x0,0x55c72f(%rip) # 0x5583293cedb0 <globals+2864> 0x0000558328e72681 <+193>: je 0x558328e726be <evq_flush+254> 0x0000558328e72683 <+195>: sub $0xa,%r13d 0x0000558328e72687 <+199>: xor %edi,%edi 0x0000558328e72689 <+201>: cmp $0x14,%r13w 0x0000558328e7268e <+206>: ja 0x558328e7269f <evq_flush+223> 0x0000558328e72690 <+208>: movzwl %r13w,%r13d 0x0000558328e72694 <+212>: lea 0x74725(%rip),%rax # 0x558328ee6dc0 <CSWTCH.1515.lto_priv.0> 0x0000558328e7269b <+219>: mov (%rax,%r13,8),%rdi 0x0000558328e7269f <+223>: mov 0x55c812(%rip),%rsi # 0x5583293ceeb8 <globals+3128> 0x0000558328e726a6 <+230>: call 0x558328dae050 <Fmemq> 0x0000558328e726ab <+235>: test %rax,%rax 0x0000558328e726ae <+238>: jne 0x558328e726be <evq_flush+254> 0x0000558328e726b0 <+240>: mov 0x55c6f9(%rip),%rax # 0x5583293cedb0 <globals+2864> 0x0000558328e726b7 <+247>: mov %rax,0x55c512(%rip) # 0x5583293cebd0 <globals+2384> 0x0000558328e726be <+254>: mov 0x5e92c4(%rip),%edx # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e726c4 <+260>: inc %r14d 0x0000558328e726c7 <+263>: test %edx,%edx 0x0000558328e726c9 <+265>: jle 0x558328e728a0 <evq_flush+736> 0x0000558328e726cf <+271>: lea 0x5e92aa(%rip),%rax # 0x55832945b980 <event_q.lto_priv.0> 0x0000558328e726d6 <+278>: mov (%rax),%rdi 0x0000558328e726d9 <+281>: vmovdqu 0x10(%rdi),%xmm2 0x0000558328e726de <+286>: vmovdqu 0x28(%rdi),%xmm3 0x0000558328e726e3 <+291>: vmovd (%rdi),%xmm0 0x0000558328e726e7 <+295>: vmovq 0x4(%rdi),%xmm1 0x0000558328e726ec <+300>: mov 0x20(%rdi),%r12 0x0000558328e726f0 <+304>: mov 0x38(%rdi),%rbp 0x0000558328e726f4 <+308>: vpextrw $0x0,%xmm0,%r13d 0x0000558328e726f9 <+313>: vmovdqa %xmm2,0x20(%rsp) 0x0000558328e726ff <+319>: vmovdqa %xmm3,0x10(%rsp) 0x0000558328e72705 <+325>: cmp $0x1,%edx 0x0000558328e72708 <+328>: je 0x558328e728d0 <evq_flush+784> 0x0000558328e7270e <+334>: dec %edx 0x0000558328e72710 <+336>: lea 0x40(%rdi),%rsi 0x0000558328e72714 <+340>: vmovq %xmm1,0x8(%rsp) 0x0000558328e7271a <+346>: vmovd %xmm0,0x4(%rsp) 0x0000558328e72720 <+352>: mov %rdx,%r15 0x0000558328e72723 <+355>: shl $0x6,%rdx 0x0000558328e72727 <+359>: call 0x558328bc5870 <memmove <at> plt> 0x0000558328e7272c <+364>: vmovd 0x4(%rsp),%xmm0 0x0000558328e72732 <+370>: vmovq 0x8(%rsp),%xmm1 0x0000558328e72738 <+376>: mov %r15d,%edx 0x0000558328e7273b <+379>: mov %r15d,0x5e9246(%rip) # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e72742 <+386>: test %r13w,%r13w 0x0000558328e72746 <+390>: je 0x558328e72a7d <evq_flush+1213> 0x0000558328e7274c <+396>: test %rbx,%rbx 0x0000558328e7274f <+399>: je 0x558328e7275b <evq_flush+411> 0x0000558328e72751 <+401>: cmpw $0x0,(%rbx) 0x0000558328e72755 <+405>: jne 0x558328e726c4 <evq_flush+260> 0x0000558328e7275b <+411>: cmp $0x1,%r13w 0x0000558328e72760 <+416>: jne 0x558328e72600 <evq_flush+64> 0x0000558328e72766 <+422>: vpextrd $0x1,%xmm1,%ecx 0x0000558328e7276c <+428>: vmovd %xmm1,%esi 0x0000558328e72770 <+432>: movslq 0x593061(%rip),%r15 # 0x5583294057d8 <quit_char> 0x0000558328e72777 <+439>: movzbl %sil,%edi 0x0000558328e7277b <+443>: mov %ecx,%eax 0x0000558328e7277d <+445>: and $0x9c00000,%eax 0x0000558328e72782 <+450>: and $0x4000000,%ecx 0x0000558328e72788 <+456>: je 0x558328e727f0 <evq_flush+560> 0x0000558328e7278a <+458>: test $0x80,%sil 0x0000558328e7278e <+462>: jne 0x558328e728e1 <evq_flush+801> 0x0000558328e72794 <+468>: lea -0x40(%rdi),%ecx 0x0000558328e72797 <+471>: cmp $0x1f,%ecx 0x0000558328e7279a <+474>: ja 0x558328e727df <evq_flush+543> 0x0000558328e7279c <+476>: sub $0x41,%edi 0x0000558328e7279f <+479>: and $0x1f,%esi 0x0000558328e727a2 <+482>: cmp $0x19,%edi 0x0000558328e727a5 <+485>: ja 0x558328e727ee <evq_flush+558> 0x0000558328e727a7 <+487>: or %eax,%esi 0x0000558328e727a9 <+489>: mov %esi,%eax 0x0000558328e727ab <+491>: or $0x2000000,%eax 0x0000558328e727b0 <+496>: cmp %r15d,%eax 0x0000558328e727b3 <+499>: je 0x558328e728f1 <evq_flush+817> 0x0000558328e727b9 <+505>: lea 0x5e3a20(%rip),%rdx # 0x5583294561e0 <stop_character> 0x0000558328e727c0 <+512>: cmp %eax,(%rdx) 0x0000558328e727c2 <+514>: jne 0x558328e72600 <evq_flush+64> 0x0000558328e727c8 <+520>: mov $0x14,%esi 0x0000558328e727cd <+525>: xor %edi,%edi 0x0000558328e727cf <+527>: call 0x558328bc88a0 <kill <at> plt> 0x0000558328e727d4 <+532>: mov 0x5e91ae(%rip),%edx # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e727da <+538>: jmp 0x558328e726c4 <evq_flush+260> 0x0000558328e727df <+543>: lea -0x61(%rdi),%ecx 0x0000558328e727e2 <+546>: cmp $0x19,%ecx 0x0000558328e727e5 <+549>: ja 0x558328e728d8 <evq_flush+792> 0x0000558328e727eb <+555>: and $0x1f,%esi 0x0000558328e727ee <+558>: mov %esi,%edi 0x0000558328e727f0 <+560>: or %edi,%eax 0x0000558328e727f2 <+562>: cmp %r15d,%eax 0x0000558328e727f5 <+565>: je 0x558328e728f1 <evq_flush+817> 0x0000558328e727fb <+571>: test %eax,%eax 0x0000558328e727fd <+573>: je 0x558328e72600 <evq_flush+64> 0x0000558328e72803 <+579>: lea 0x5e39d6(%rip),%rdx # 0x5583294561e0 <stop_character> 0x0000558328e7280a <+586>: cmp %eax,(%rdx) 0x0000558328e7280c <+588>: jne 0x558328e72600 <evq_flush+64> 0x0000558328e72812 <+594>: jmp 0x558328e727c8 <evq_flush+520> 0x0000558328e72814 <+596>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e7281f <+607>: nop 0x0000558328e72820 <+608>: cmpb $0x0,0x5e3901(%rip) # 0x558329456128 <kbd_is_on_hold.lto_priv.0> 0x0000558328e72827 <+615>: jne 0x558328e72679 <evq_flush+185> 0x0000558328e7282d <+621>: cmpb $0x0,0x55ba21(%rip) # 0x5583293ce255 <noninteractive> 0x0000558328e72834 <+628>: movb $0x1,0x5e38ed(%rip) # 0x558329456128 <kbd_is_on_hold.lto_priv.0> 0x0000558328e7283b <+635>: jne 0x558328e72877 <evq_flush+695> 0x0000558328e7283d <+637>: lea 0x30(%rsp),%rbp 0x0000558328e72842 <+642>: mov %rbp,%rdi 0x0000558328e72845 <+645>: call 0x558328bc82b0 <sigemptyset <at> plt> 0x0000558328e7284a <+650>: mov $0x1c,%esi 0x0000558328e7284f <+655>: mov %rbp,%rdi 0x0000558328e72852 <+658>: call 0x558328bc8d40 <sigaddset <at> plt> 0x0000558328e72857 <+663>: mov $0x1d,%esi 0x0000558328e7285c <+668>: mov %rbp,%rdi 0x0000558328e7285f <+671>: call 0x558328bc8d40 <sigaddset <at> plt> 0x0000558328e72864 <+676>: xor %edx,%edx 0x0000558328e72866 <+678>: mov %rbp,%rsi 0x0000558328e72869 <+681>: xor %edi,%edi 0x0000558328e7286b <+683>: call 0x558328bc58f0 <pthread_sigmask <at> plt> 0x0000558328e72870 <+688>: movb $0x1,0x55b8e1(%rip) # 0x5583293ce158 <interrupts_deferred> 0x0000558328e72877 <+695>: cmpb $0x0,0x55b8d2(%rip) # 0x5583293ce150 <interrupt_input> 0x0000558328e7287e <+702>: jne 0x558328e72679 <evq_flush+185> 0x0000558328e72884 <+708>: incl 0x56ef22(%rip) # 0x5583293e17ac <poll_suppress_count> 0x0000558328e7288a <+714>: jmp 0x558328e72679 <evq_flush+185> 0x0000558328e7288f <+719>: xor %r14d,%r14d 0x0000558328e72892 <+722>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e7289d <+733>: nopl (%rax) 0x0000558328e728a0 <+736>: mov 0xb8(%rsp),%rdx 0x0000558328e728a8 <+744>: sub %fs:0x28,%rdx 0x0000558328e728b1 <+753>: jne 0x558328e72a78 <evq_flush+1208> 0x0000558328e728b7 <+759>: add $0xc8,%rsp 0x0000558328e728be <+766>: mov %r14d,%eax 0x0000558328e728c1 <+769>: pop %rbx 0x0000558328e728c2 <+770>: pop %rbp 0x0000558328e728c3 <+771>: pop %r12 0x0000558328e728c5 <+773>: pop %r13 0x0000558328e728c7 <+775>: pop %r14 0x0000558328e728c9 <+777>: pop %r15 0x0000558328e728cb <+779>: ret 0x0000558328e728cc <+780>: nopl 0x0(%rax) 0x0000558328e728d0 <+784>: xor %r15d,%r15d 0x0000558328e728d3 <+787>: jmp 0x558328e72738 <evq_flush+376> 0x0000558328e728d8 <+792>: and $0x60,%esi 0x0000558328e728db <+795>: je 0x558328e727f0 <evq_flush+560> 0x0000558328e728e1 <+801>: or %edi,%eax 0x0000558328e728e3 <+803>: or $0x4000000,%eax 0x0000558328e728e8 <+808>: cmp %r15d,%eax 0x0000558328e728eb <+811>: jne 0x558328e727b9 <evq_flush+505> 0x0000558328e728f1 <+817>: mov 0x10(%rsp),%rsi 0x0000558328e728f6 <+822>: cmpb $0x0,0x56e8b3(%rip) # 0x5583293e11b0 <single_kboard.lto_priv.0> 0x0000558328e728fd <+829>: mov 0x1cb(%rsi),%rax 0x0000558328e72904 <+836>: mov 0x48(%rax),%r13 0x0000558328e72908 <+840>: je 0x558328e72913 <evq_flush+851> 0x0000558328e7290a <+842>: cmp 0x56e8cf(%rip),%r13 # 0x5583293e11e0 <current_kboard> 0x0000558328e72911 <+849>: jne 0x558328e72977 <evq_flush+951> 0x0000558328e72913 <+851>: test %rbx,%rbx 0x0000558328e72916 <+854>: je 0x558328e7294c <evq_flush+908> 0x0000558328e72918 <+856>: vmovdqa 0x20(%rsp),%xmm6 0x0000558328e7291e <+862>: vmovdqa 0x10(%rsp),%xmm7 0x0000558328e72924 <+868>: movw $0x1,(%rbx) 0x0000558328e72929 <+873>: mov %r12,0x20(%rbx) 0x0000558328e7292d <+877>: mov %rbp,0x38(%rbx) 0x0000558328e72931 <+881>: vmovq %xmm1,0x4(%rbx) 0x0000558328e72936 <+886>: vpextrw $0x1,%xmm0,0x2(%rbx) 0x0000558328e7293d <+893>: vmovdqu %xmm6,0x10(%rbx) 0x0000558328e72942 <+898>: vmovdqu %xmm7,0x28(%rbx) 0x0000558328e72947 <+903>: jmp 0x558328e726c4 <evq_flush+260> 0x0000558328e7294c <+908>: mov 0x2b(%rsi),%rax 0x0000558328e72950 <+912>: test %rax,%rax 0x0000558328e72953 <+915>: cmove %rsi,%rax 0x0000558328e72957 <+919>: xor %edi,%edi 0x0000558328e72959 <+921>: mov %rax,0x56e888(%rip) # 0x5583293e11e8 <internal_last_event_frame> 0x0000558328e72960 <+928>: mov %rax,0x55bf19(%rip) # 0x5583293ce880 <globals+1536> 0x0000558328e72967 <+935>: call 0x558328cfb630 <handle_interrupt> 0x0000558328e7296c <+940>: mov 0x5e9016(%rip),%edx # 0x55832945b988 <event_q.lto_priv.0+8> 0x0000558328e72972 <+946>: jmp 0x558328e726c4 <evq_flush+260> 0x0000558328e72977 <+951>: mov $0xf210,%edi 0x0000558328e7297c <+956>: call 0x558328d5f240 <list2> 0x0000558328e72981 <+961>: lea 0x2(,%r15,4),%rsi 0x0000558328e72989 <+969>: mov %rax,%rdi 0x0000558328e7298c <+972>: call 0x558328d5f240 <list2> 0x0000558328e72991 <+977>: mov 0x5d2e68(%rip),%rsi # 0x558329445800 <kbd_store_ptr> 0x0000558328e72998 <+984>: lea 0x5d2e21(%rip),%rdi # 0x5583294457c0 <kbd_buffer+262080> 0x0000558328e7299f <+991>: movb $0x1,0xb8(%r13) 0x0000558328e729a7 <+999>: mov %rax,0x40(%r13) 0x0000558328e729ab <+1003>: mov 0x5d2e56(%rip),%rax # 0x558329445808 <kbd_fetch_ptr> 0x0000558328e729b2 <+1010>: movabs $0x400000003f000000,%r8 0x0000558328e729bc <+1020>: movabs $0x400000000b000000,%r10 0x0000558328e729c6 <+1030>: movabs $0x400000000a000000,%r9 0x0000558328e729d0 <+1040>: vpxor %xmm0,%xmm0,%xmm0 0x0000558328e729d4 <+1044>: lea -0x3ffc0(%rdi),%r11 0x0000558328e729db <+1051>: cmp %rsi,%rax 0x0000558328e729de <+1054>: je 0x558328e726be <evq_flush+254> 0x0000558328e729e4 <+1060>: data16 cs nopw 0x0(%rax,%rax,1) 0x0000558328e729ef <+1071>: nop 0x0000558328e729f0 <+1072>: movzwl (%rax),%ecx 0x0000558328e729f3 <+1075>: lea -0xa(%rcx),%edx 0x0000558328e729f6 <+1078>: cmp $0x1,%dx 0x0000558328e729fa <+1082>: jbe 0x558328e72a19 <evq_flush+1113> 0x0000558328e729fc <+1084>: mov 0x28(%rax),%rdx 0x0000558328e72a00 <+1088>: lea -0x5(%rdx),%ecx 0x0000558328e72a03 <+1091>: and $0x7,%ecx 0x0000558328e72a06 <+1094>: jne 0x558328e72a19 <evq_flush+1113> 0x0000558328e72a08 <+1096>: mov -0x5(%rdx),%rcx 0x0000558328e72a0c <+1100>: and %r8,%rcx 0x0000558328e72a0f <+1103>: cmp %r10,%rcx 0x0000558328e72a12 <+1106>: je 0x558328e72a63 <evq_flush+1187> 0x0000558328e72a14 <+1108>: cmp %r9,%rcx 0x0000558328e72a17 <+1111>: je 0x558328e72a3e <evq_flush+1150> 0x0000558328e72a19 <+1113>: cmp %rdi,%rax 0x0000558328e72a1c <+1116>: je 0x558328e72a2c <evq_flush+1132> 0x0000558328e72a1e <+1118>: add $0x40,%rax 0x0000558328e72a22 <+1122>: cmp %rsi,%rax 0x0000558328e72a25 <+1125>: jne 0x558328e729f0 <evq_flush+1072> 0x0000558328e72a27 <+1127>: jmp 0x558328e726be <evq_flush+254> 0x0000558328e72a2c <+1132>: cmp %r11,%rsi 0x0000558328e72a2f <+1135>: je 0x558328e726be <evq_flush+254> 0x0000558328e72a35 <+1141>: lea 0x592dc4(%rip),%rax # 0x558329405800 <kbd_buffer> 0x0000558328e72a3c <+1148>: jmp 0x558328e729f0 <evq_flush+1072> 0x0000558328e72a3e <+1150>: mov 0x1cb(%rdx),%rdx 0x0000558328e72a45 <+1157>: test %rdx,%rdx 0x0000558328e72a48 <+1160>: je 0x558328e72a19 <evq_flush+1113> 0x0000558328e72a4a <+1162>: cmp 0x48(%rdx),%r13 0x0000558328e72a4e <+1166>: jne 0x558328e72a19 <evq_flush+1113> 0x0000558328e72a50 <+1168>: movw $0x0,(%rax) 0x0000558328e72a55 <+1173>: vmovdqu %xmm0,0x28(%rax) 0x0000558328e72a5a <+1178>: mov 0x5d2d9f(%rip),%rsi # 0x558329445800 <kbd_store_ptr> 0x0000558328e72a61 <+1185>: jmp 0x558328e72a19 <evq_flush+1113> 0x0000558328e72a63 <+1187>: mov 0x3(%rdx),%rdx 0x0000558328e72a67 <+1191>: lea -0x5(%rdx),%ecx 0x0000558328e72a6a <+1194>: and $0x7,%ecx 0x0000558328e72a6d <+1197>: jne 0x558328e72a19 <evq_flush+1113> 0x0000558328e72a6f <+1199>: mov -0x5(%rdx),%rcx 0x0000558328e72a73 <+1203>: and %r8,%rcx 0x0000558328e72a76 <+1206>: jmp 0x558328e72a14 <evq_flush+1108> 0x0000558328e72a78 <+1208>: call 0x558328bc6230 <__stack_chk_fail <at> plt> 0x0000558328e72a7d <+1213>: jmp 0x558328bd7dce <evq_flush.cold> Address range 0x558328bd7dce to 0x558328bd7dd3: 0x0000558328bd7dce <-2729970>: call 0x558328bceaed <emacs_abort> End of assembler dump. (gdb)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.