unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
@ 2023-05-20 18:52 Leonardo Hernández via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-21  0:51 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Leonardo Hernández via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-20 18:52 UTC (permalink / raw)
  To: 63614

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@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))






^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-20 18:52 bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Leonardo Hernández via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-21  0:51 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-21  4:30   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-22  1:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-25  6:48 ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-21  0:51 UTC (permalink / raw)
  To: Leonardo Hernández; +Cc: 63614

Leonardo Hernández <leohdz172@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.





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-21  0:51 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-21  4:30   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-21  5:11     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-21  4:30 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614@debbugs.gnu.org


[-- Attachment #1.1: Type: text/plain, Size: 879 bytes --]

> 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

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 509 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-21  4:30   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-21  5:11     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-21  6:42       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-21  5:11 UTC (permalink / raw)
  To: Leonardo Hernández Hernández; +Cc: 63614@debbugs.gnu.org

Leonardo Hernández Hernández <leohdz172@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.





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-21  5:11     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-21  6:42       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-21  6:42 UTC (permalink / raw)
  To: Po Lu, 63614@debbugs.gnu.org


[-- Attachment #1.1: Type: text/plain, Size: 2125 bytes --]

> 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@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

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 509 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-20 18:52 bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Leonardo Hernández via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-21  0:51 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-22  1:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-24  6:37   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-25  6:48 ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-22  1:11 UTC (permalink / raw)
  To: Leonardo Hernández; +Cc: 63614

Leonardo Hernández <leohdz172@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

?





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-22  1:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-24  6:37   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-24  6:50     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-24  6:37 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614@debbugs.gnu.org


[-- Attachment #1.1: Type: text/plain, Size: 204 bytes --]

> 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}

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 509 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-24  6:37   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-24  6:50     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-25  5:34       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-24  6:50 UTC (permalink / raw)
  To: Leonardo Hernández Hernández; +Cc: 63614@debbugs.gnu.org

Leonardo Hernández Hernández <leohdz172@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?





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-24  6:50     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-25  5:34       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-25  6:13         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-25  5:34 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614

> 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@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@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






^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-25  5:34       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-25  6:13         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-25  6:13 UTC (permalink / raw)
  To: Leonardo Hernández Hernández; +Cc: 63614

Leonardo Hernández Hernández <leohdz172@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@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?





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-20 18:52 bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Leonardo Hernández via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-21  0:51 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-22  1:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-25  6:48 ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-25 10:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2 siblings, 1 reply; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-25  6:48 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614

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@entry=0x7ffe618520c8, used_mouse_menu=used_mouse_menu@entry=0x7ffe6185263b, end_time=end_time@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@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)






^ permalink raw reply related	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-25  6:48 ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-25 10:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-25 20:27     ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-25 10:35 UTC (permalink / raw)
  To: Leonardo Hernández Hernández; +Cc: 63614

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);
 





^ permalink raw reply related	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-25 10:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-25 20:27     ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-26  0:33       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-25 20:27 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614

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@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)






^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-25 20:27     ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-26  0:33       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-26  2:01         ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-26  0:33 UTC (permalink / raw)
  To: Leonardo Hernández Hernández; +Cc: 63614

Leonardo Hernández Hernández <leohdz172@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;





^ permalink raw reply related	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-26  0:33       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-26  2:01         ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-26  3:24           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-26  2:01 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614

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@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@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)






^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-26  2:01         ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-26  3:24           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-05-26  3:29             ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 17+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-26  3:24 UTC (permalink / raw)
  To: Leonardo Hernández Hernández; +Cc: 63614

Would you please:

  (gdb) disassemble pgtk_selection_event
  (gdb) disassemble evq_enqueue
  (gdb) disassemble evq_flush

thanks.





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard
  2023-05-26  3:24           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-26  3:29             ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 17+ messages in thread
From: leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-26  3:29 UTC (permalink / raw)
  To: Po Lu; +Cc: 63614

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@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@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@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@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@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@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@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@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@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@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@plt>
   0x0000558328e7284a <+650>:	mov    $0x1c,%esi
   0x0000558328e7284f <+655>:	mov    %rbp,%rdi
   0x0000558328e72852 <+658>:	call   0x558328bc8d40 <sigaddset@plt>
   0x0000558328e72857 <+663>:	mov    $0x1d,%esi
   0x0000558328e7285c <+668>:	mov    %rbp,%rdi
   0x0000558328e7285f <+671>:	call   0x558328bc8d40 <sigaddset@plt>
   0x0000558328e72864 <+676>:	xor    %edx,%edx
   0x0000558328e72866 <+678>:	mov    %rbp,%rsi
   0x0000558328e72869 <+681>:	xor    %edi,%edi
   0x0000558328e7286b <+683>:	call   0x558328bc58f0 <pthread_sigmask@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@plt>
   0x0000558328e72a7d <+1213>:	jmp    0x558328bd7dce <evq_flush.cold>
Address range 0x558328bd7dce to 0x558328bd7dd3:
   0x0000558328bd7dce <-2729970>:	call   0x558328bceaed <emacs_abort>
End of assembler dump.
(gdb)






^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-05-26  3:29 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-20 18:52 bug#63614: 29.0.91; PGTK Emacs crashes after clearing the clipboard Leonardo Hernández via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-21  0:51 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-21  4:30   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-21  5:11     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-21  6:42       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-22  1:11 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-24  6:37   ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-24  6:50     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-25  5:34       ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-25  6:13         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-25  6:48 ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-25 10:35   ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-25 20:27     ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-26  0:33       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-26  2:01         ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-26  3:24           ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-26  3:29             ` leohdz172--- via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).