* 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).