Closed etenim closed 3 years ago
Here is the bottom parts of strace output leading up to a wayst terminal segfaulting when exiting vim:
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, 0) = 0 (Timeout)
sendmsg(5, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\16\0\0\0\3\0\f\0\32\0\0\0", iov_len=12}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 12
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, 598) = 1 ([{fd=5, revents=POLLIN}])
recvmsg(5, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\24\0\0\0\0\0\10\0\35\0\0\0\0\0\f\0\370\334S7\1\0\0\0\1\0\f\0\35\0\0\0"..., iov_len=4060}, {iov_base="", iov_len=36}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 56
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, 598) = 1 ([{fd=3, revents=POLLIN}])
read(3, " 4L, 112B written", 128) = 17
poll([{fd=3, events=POLLIN}], 1, 0) = 0 (Timeout)
ioctl(10, DRM_IOCTL_I915_GEM_BUSY, 0x7ffe59f57fa0) = 0
ioctl(10, DRM_IOCTL_I915_GEM_BUSY, 0x7ffe59f58220) = 0
ioctl(10, DRM_IOCTL_I915_GEM_BUSY, 0x7ffe59f580dc) = 0
ioctl(10, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffe59f580dc) = 0
ioctl(10, DRM_IOCTL_I915_GEM_EXECBUFFER2, 0x7ffe59f58210) = 0
ioctl(10, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffe59f58194) = 0
ioctl(10, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffe59f58154) = 0
ioctl(10, DRM_IOCTL_I915_GEM_BUSY, 0x7ffe59f5807c) = 0
ioctl(10, DRM_IOCTL_I915_GEM_MADVISE, 0x7ffe59f5807c) = 0
ioctl(10, DRM_IOCTL_SYNCOBJ_CREATE, 0x7ffe59f58190) = 0
ioctl(10, DRM_IOCTL_SYNCOBJ_DESTROY, 0x7ffe59f582b0) = 0
sendmsg(5, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\16\0\0\0\3\0\f\0\27\0\0\0\16\0\0\0\1\0\24\0\24\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=64}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 64
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, 0) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\r\33[23;2t\33[23;1t\r\r\n\33[?2004l\33[?1l\33"..., 128) = 62
munmap(0x7f4125569000, 16384) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7f412cdac79d} ---
+++ killed by SIGSEGV +++
I have another strace output, but from a segfault related to tmux this time. I entered "ctrl+b", and then "pgup" in tmux, and the segfault happened as soon as I hit "pgup" and any further attempts to reattach to that tmux session will segfault wayst.
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd8eeedf000
writev(2, [{iov_base="", iov_len=0}, {iov_base="[\33[33mwarning\33[m] ", iov_len=18}], 2[warning] ) = 18
writev(2, [{iov_base="", iov_len=0}, {iov_base="utf8 mouse mode not implemented\n", iov_len=32}], 2utf8 mouse mode not implemented
) = 32
writev(2, [{iov_base="", iov_len=0}, {iov_base="[\33[33mwarning\33[m] ", iov_len=18}], 2[warning] ) = 18
writev(2, [{iov_base="Unimplemented DSR code: 1337\n", iov_len=29}, {iov_base=NULL, iov_len=0}], 2Unimplemented DSR code: 1337
) = 29
poll([{fd=3, events=POLLIN}], 1, 0) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\33[?1006l\33[?2004l\33[1;1H\33[1;24r\33[2"..., 128) = 37
poll([{fd=3, events=POLLIN}], 1, 0) = 0 (Timeout)
write(3, "\33[?6c", 5) = 5
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, 595) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\33[?25l\33[H selected: \33[31m\33[1m"..., 128) = 128
mmap(NULL, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd8eedc7000
poll([{fd=3, events=POLLIN}], 1, 0) = 1 ([{fd=3, revents=POLLIN}])
read(3, "1H protected: none \33[K\33[3;5H\33["..., 128) = 128
--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=NULL} ---
+++ killed by SIGSEGV +++
It's looking likely that with vim it is related to usage of wayst's copy/paste functionality. I opened a c source file, and closed it again ":q" many times without managing to segfault wayst. However opening a c source file with vim just once and pasting text from the same wayst terminal, caused wayst to segfault when I entered ":wq" to save and quit vim.
I got another segfault doing the same thing again:
Using a wayland compositor.
I've reproduced it multiple times now (using the steps in my previous comment), and it is a consistent issue. There is however only segfaults when the copied contents is pasted into a vim running on the same wayst terminal the text is copied from. I tried copying and pasting between two different wayst terminals, and that did not cause a segfault.
I tried with "ed" instead of "vim" and did not get a segfault.
Strangely I'm not getting segfaults when copying text from a file viewed with "less". The segfaults happen always when I copy text from a file opened with "cat". It does not seem to matter what contents the file has, as long as "cat" is the program used to display it.
After having used "cat" to display text and then used ctrl+shift+y to copy the text, all I need to do is open and quit vim for wayst to segfault, pasting the text isn't even needed.
The "cat" utility is from busybox. I'll add that this is on a musl system, with a wayland compositor.
Still couldn't reproduce this.
If you can consistently get it to crash, you can try to get some useful info by running a sanitized build: make -B mode=sanitized
and just run normally.
Or get a backtrace from the coredump file:
make -B mode=debug
coredumpctl debug
)(gdb)
prompt bt full
)Running wayst with debug symbols and gdb to capture a segfault.
App::select_drag{ 398 x 673 }
App::select_drag{ 398 x 673 }
App::select_drag{ 398 x 673 }
Wl::key{ key: 21 code: 29 state: 1 repeat: 0 sym: 89 rawsym: 121 utfcode: 25 }
making a data source
wl.data_device::offer
wl.data_offer::offer{ mime_type: text/plain;charset=utf-8 - ACCEPTED(new data) }
wl.data_device::selection { has_offer: 1 }
Wl::key{ key: 21 code: 29 state: 0 repeat: 0 sym: 89 rawsym: 121 utfcode: 25 }
Wl::key{ key: 47 code: 55 state: 1 repeat: 0 sym: 118 rawsym: 118 utfcode: 118 }
Wl::key{ key: 47 code: 55 state: 0 repeat: 0 sym: 118 rawsym: 118 utfcode: 118 }
Wl::key{ key: 23 code: 31 state: 1 repeat: 0 sym: 105 rawsym: 105 utfcode: 105 }
Wl::key{ key: 23 code: 31 state: 0 repeat: 0 sym: 105 rawsym: 105 utfcode: 105 }
Wl::key{ key: 50 code: 58 state: 1 repeat: 0 sym: 109 rawsym: 109 utfcode: 109 }
Wl::key{ key: 50 code: 58 state: 0 repeat: 0 sym: 109 rawsym: 109 utfcode: 109 }
Wl::key{ key: 28 code: 36 state: 1 repeat: 0 sym: 65293 rawsym: 65293 utfcode: 13 }
Title stack push
Title stack push
Title stack push
[warning] Unknown DCS: zz␛\
[warning] DEC mode state reports not implemented
Wl::key{ key: 28 code: 36 state: 0 repeat: 0 sym: 65293 rawsym: 65293 utfcode: 13 }
Wl::key{ key: 39 code: 47 state: 1 repeat: 0 sym: 58 rawsym: 59 utfcode: 58 }
Wl::key{ key: 39 code: 47 state: 0 repeat: 0 sym: 58 rawsym: 59 utfcode: 58 }
Wl::key{ key: 16 code: 24 state: 1 repeat: 0 sym: 113 rawsym: 113 utfcode: 113 }
Wl::key{ key: 16 code: 24 state: 0 repeat: 0 sym: 113 rawsym: 113 utfcode: 113 }
Wl::key{ key: 28 code: 36 state: 1 repeat: 0 sym: 65293 rawsym: 65293 utfcode: 13 }
Title stack pop
Title stack pop
Thread 1 "wayst" received signal SIGSEGV, Segmentation fault.
0x00005555555b449d in Vt_mark_line_proxy_fully_damaged (self=0x7fffffffdc00, line=0x7ffff76d00b0) at src/vt.c:598
598 line->damage.type = VT_LINE_DAMAGE_FULL;
#0 0x00005555555b449d in Vt_mark_line_proxy_fully_damaged (self=0x7fffffffdc00, line=0x7ffff76d00b0)
at src/vt.c:598
__func__ = "Vt_mark_line_proxy_fully_damaged"
#1 0x00005555555b44e8 in Vt_mark_proxy_fully_damaged (self=0x7fffffffdc00, idx=701) at src/vt.c:603
No locals.
#2 0x00005555555b471d in Vt_mark_proxies_damaged_in_region (self=0x7fffffffdc00, begin=701, end=722)
at src/vt.c:638
i = 701
lo = 701
hi = 722
#3 0x00005555555b49d0 in Vt_mark_proxies_damaged_in_selected_region (self=0x7fffffffdc00) at src/vt.c:683
No locals.
#4 0x00005555555b5179 in Vt_select_end (self=0x7fffffffdc00) at src/vt.c:775
__func__ = "Vt_select_end"
#5 0x00005555555bceb6 in Vt_alt_buffer_off (self=0x7fffffffdc00, save_mouse=true) at src/vt.c:3331
No locals.
#6 0x00005555555b8e38 in Vt_handle_dec_mode (self=0x7fffffffdc00, code=1049, on=false) at src/vt.c:1904
__func__ = "Vt_handle_dec_mode"
#7 0x00005555555b92eb in Vt_handle_CSI (self=0x7fffffffdc00, c=108 'l') at src/vt.c:2005
code = 1049
token = 0x7fffeee651f0
is_enable = false
tokens = {cap = 8, size = 1, buf = 0x7fffeee651f0}
seq = 0x7fffefdb10e0 "?1049l"
last_char = 108 'l'
second_last_char = 57 '9'
first_char = 63 '?'
is_single_arg = true
__func__ = "Vt_handle_CSI"
#8 0x00005555555c4ee4 in Vt_handle_char (c=108 'l', self=0x7fffffffdc00) at src/vt.c:5306
__func__ = "Vt_handle_char"
#9 Vt_interpret (self=0x7fffffffdc00,
buf=0x7fffffffe425 "\033[23;1t\033[24;1H\033[K\033[24;1H\033[?2004l\033[?1l\033>\033[?25h\033[>4;m\033[?1049l\033[23;0;0t5m<F1>\033[m for on-line help\033[17;18Htype :help version8\033[38;", bytes=68) at src/vt.c:5814
i = 58
#10 0x0000555555592877 in App_run (self=0x7fffffffdbf0) at src/main.c:246
timeout_ms = 598
pending_window_timer = 0x7ffff7a1b740
bytes = 68
buf = 0x7fffee9310f0 "\r[2;2R\033[3;1R\033[>0;0;0c\033]10;rgb:199/238/255\a\033]11;rgb: 0/ 0/ 0\a"
len = 0
closest_gfx_timer = 0x7ffff65c2d00
out = 0x0
#11 0x0000555555597f51 in main (argc=1, argv=0x7fffffffe628) at src/main.c:1636
application = {win = 0x7ffff58f0810, gfx = 0x7ffff65c2950, vt = {callbacks = {user_data = 0x7fffffffdbf0,
on_window_size_requested = 0x555555592f4f <App_window_size>,
on_text_area_size_requested = 0x555555597b89 <App_text_area_size>,
on_window_size_from_cells_requested = 0x555555592f89 <App_pixels>,
on_number_of_cells_requested = 0x555555592fb5 <App_get_char_size>, on_window_resize_requested = 0x0,
on_window_position_requested = 0x555555592f6c <App_window_position>,
on_minimized_state_requested = 0x555555597a53 <App_minimized>,
on_fullscreen_state_requested = 0x555555597a78 <App_fullscreen>,
on_action_performed = 0x55555559301b <App_action>,
on_repaint_required = 0x555555592eea <App_notify_content_change>,
on_visual_bell = 0x555555592ffc <App_flash>, on_desktop_notification_sent =
0x555555597959 <App_send_desktop_notification>, on_window_maximize_state_set =
0x555555597a9d <App_set_maximized_state>, on_window_fullscreen_state_set =
0x555555597ace <App_set_fullscreen_state>, on_window_dimensions_set = 0x555555597aff <App_set_window_size>,
on_text_area_dimensions_set = 0x555555597b33 <App_set_text_area_size>, on_title_changed =
0x555555592fd3 <App_update_title>, on_clipboard_requested = 0x555555592f31 <App_clipboard_get>,
on_font_reload_requseted = 0x555555592e39 <App_reload_font>, on_clipboard_sent =
0x555555592f08 <App_clipboard_send>, on_urgency_set = 0x555555597bda <App_set_urgent>,
on_restack_to_front = 0x555555597c0e <App_restack_to_front>,
on_application_hostname_requested = 0x555555597c31 <App_get_hostname>, destroy_proxy =
0x5555555977f1 <App_destroy_proxy_handler>, destroy_image_proxy =
0x555555597823 <App_destroy_image_proxy_handler>, destroy_image_view_proxy =
0x555555597855 <App_destroy_image_view_proxy_handler>}, last_click_x = 0, last_click_y = 0,
pixels_per_cell_x = 16.449999999999999, pixels_per_cell_y = 31.5, scrolling_visual = false,
visual_scroll_top = 0, unicode_input = {active = false, buffer = {cap = 4, size = 0,
buf = 0x7ffff76a1580 "LKLU"}}, selection = {mode = SELECT_MODE_NONE, next_mode = SELECT_MODE_NONE,
click_begin_line = 701, click_begin_char_idx = 0, begin_line = 701, end_line = 722,
begin_char_idx = 0, end_char_idx = 24}, ws = {ws_row = 24, ws_col = 80, ws_xpixel = 1316,
ws_ypixel = 756}, tios = {c_iflag = 0, c_oflag = 0, c_cflag = 0, c_lflag = 0, c_line = 0 '\000',
c_cc = '\000' <repeats 31 times>, __c_ispeed = 0, __c_ospeed = 0}, master_fd = 3, output = {cap = 63,
size = 0,
buf = 0x7fffee9310f0 "\r[2;2R\033[3;1R\033[>0;0;0c\033]10;rgb:199/238/255\a\033]11;rgb: 0/ 0/ 0\a"}, staged_output = {cap = 4, size = 0, buf = 0x7ffff76a1570 "Lohi"}, wrap_next = false, parser = {
state = PARSER_STATE_CSI, in_mb_seq = false, input_mbstate = {__opaque1 = 0, __opaque2 = 0},
char_state = {rune = {code = 0 U'\000', combine = U"\000", style = VT_RUNE_NORMAL}, ln_clr_data = {
rgb = {r = 0 '\000', g = 0 '\000', b = 0 '\000'}, index = 0}, fg_data = {rgb = {r = 255 '\377',
g = 255 '\377', b = 0 '\000'}, index = -1}, bg_data = {rgba = {r = 255 '\377', g = 255 '\377',
b = 0 '\000', a = 0 '\000'}, index = -1}, hyperlink_idx = 0, bg_is_palette_entry = true,
fg_is_palette_entry = true, ln_clr_is_palette_entry = false, line_color_not_default = false,
invert = false, dim = false, hidden = false, blinkng = false, underlined = false,
strikethrough = false, doubleunderline = false, curlyunderline = false, overline = false},
active_sequence = {cap = 32, size = 7, buf = 0x7fffefdb10e0 "?1049l"}}, uri_matcher = {match = {
cap = 128, size = 0, buf = 0x7ffff7a799f0 "qnfoion8ioemas.xmlsoap.org/soap/encoding/"},
start_column = 1, start_row = 23, state = VT_URI_MATCHER_EMPTY},
shell_integration_state = VT_SHELL_INTEG_STATE_NONE, manipulated_image = {block = 0x0}, images = {
cap = 4, size = 0, buf = 0x7ffff7686760}, image_views = {cap = 4, size = 0, buf = 0x7ffff7839eb0},
shell_commands = {cap = 4, size = 0, buf = 0x7ffff7839ee0}, shell_integration_shell_id = 0x0,
shell_integration_protocol_version = 0, shell_integration_shell_host = 0x0,
shell_integration_current_dir = 0x0, title = 0x0, client_host = 0x0, work_dir = 0x0, title_stack = {
cap = 4, size = 0, buf = 0x7ffff7686730}, colors = {bg = {r = 0 '\000', g = 0 '\000', b = 0 '\000',
a = 187 '\273'}, fg = {r = 199 '\307', g = 238 '\356', b = 255 '\377'}, highlight = {bg = {
r = 50 '2', g = 50 '2', b = 50 '2', a = 240 '\360'}, fg = {r = 255 '\377', g = 255 '\377',
b = 255 '\377'}}, palette_256 = {{r = 0 '\000', g = 0 '\000', b = 0 '\000'}, {r = 171 '\253',
g = 31 '\037', b = 0 '\000'}, {r = 210 '\322', g = 255 '\377', b = 0 '\000'}, {r = 255 '\377',
g = 125 '}', b = 0 '\000'}, {r = 64 '@', g = 96 '`', b = 176 '\260'}, {r = 183 '\267',
g = 0 '\000', b = 111 'o'}, {r = 0 '\000', g = 174 '\256', b = 160 '\240'}, {r = 170 '\252',
g = 170 '\252', b = 170 '\252'}, {r = 84 'T', g = 84 'T', b = 84 'T'}, {r = 187 '\273',
g = 57 '9', b = 57 '9'}, {r = 175 '\257', g = 255 '\377', b = 82 'R'}, {r = 255 '\377',
g = 168 '\250', b = 85 'U'}, {r = 16 '\020', g = 123 '{', b = 201 '\311'}, {r = 255 '\377',
g = 54 '6', b = 138 '\212'}, {r = 64 '@', g = 255 '\377', b = 239 '\357'}, {r = 255 '\377',
g = 255 '\377', b = 255 '\377'}, {r = 0 '\000', g = 0 '\000', b = 0 '\000'}, {r = 0 '\000',
g = 0 '\000', b = 51 '3'}, {r = 0 '\000', g = 0 '\000', b = 102 'f'}, {r = 0 '\000',
g = 0 '\000', b = 153 '\231'}, {r = 0 '\000', g = 0 '\000', b = 204 '\314'}, {r = 0 '\000',
g = 0 '\000', b = 255 '\377'}, {r = 0 '\000', g = 51 '3', b = 0 '\000'}, {r = 0 '\000',
g = 51 '3', b = 51 '3'}, {r = 0 '\000', g = 51 '3', b = 102 'f'}, {r = 0 '\000', g = 51 '3',
b = 153 '\231'}, {r = 0 '\000', g = 51 '3', b = 204 '\314'}, {r = 0 '\000', g = 51 '3',
b = 255 '\377'}, {r = 0 '\000', g = 102 'f', b = 0 '\000'}, {r = 0 '\000', g = 102 'f',
b = 51 '3'}, {r = 0 '\000', g = 102 'f', b = 102 'f'}, {r = 0 '\000', g = 102 'f',
b = 153 '\231'}, {r = 0 '\000', g = 102 'f', b = 204 '\314'}, {r = 0 '\000', g = 102 'f',
b = 255 '\377'}, {r = 0 '\000', g = 153 '\231', b = 0 '\000'}, {r = 0 '\000', g = 153 '\231',
b = 51 '3'}, {r = 0 '\000', g = 153 '\231', b = 102 'f'}, {r = 0 '\000', g = 153 '\231',
b = 153 '\231'}, {r = 0 '\000', g = 153 '\231', b = 204 '\314'}, {r = 0 '\000', g = 153 '\231',
b = 255 '\377'}, {r = 0 '\000', g = 204 '\314', b = 0 '\000'}, {r = 0 '\000', g = 204 '\314',
b = 51 '3'}, {r = 0 '\000', g = 204 '\314', b = 102 'f'}, {r = 0 '\000', g = 204 '\314',
b = 153 '\231'}, {r = 0 '\000', g = 204 '\314', b = 204 '\314'}, {r = 0 '\000', g = 204 '\314',
b = 255 '\377'}, {r = 0 '\000', g = 255 '\377', b = 0 '\000'}, {r = 0 '\000', g = 255 '\377',
b = 51 '3'}, {r = 0 '\000', g = 255 '\377', b = 102 'f'}, {r = 0 '\000', g = 255 '\377',
b = 153 '\231'}, {r = 0 '\000', g = 255 '\377', b = 204 '\314'}, {r = 0 '\000', g = 255 '\377',
b = 255 '\377'}, {r = 51 '3', g = 0 '\000', b = 0 '\000'}, {r = 51 '3', g = 0 '\000',
b = 51 '3'}, {r = 51 '3', g = 0 '\000', b = 102 'f'}, {r = 51 '3', g = 0 '\000', b = 153 '\231'},
{r = 51 '3', g = 0 '\000', b = 204 '\314'}, {r = 51 '3', g = 0 '\000', b = 255 '\377'}, {
r = 51 '3', g = 51 '3', b = 0 '\000'}, {r = 51 '3', g = 51 '3', b = 51 '3'}, {r = 51 '3',
g = 51 '3', b = 102 'f'}, {r = 51 '3', g = 51 '3', b = 153 '\231'}, {r = 51 '3', g = 51 '3',
b = 204 '\314'}, {r = 51 '3', g = 51 '3', b = 255 '\377'}, {r = 51 '3', g = 102 'f',
b = 0 '\000'}, {r = 51 '3', g = 102 'f', b = 51 '3'}, {r = 51 '3', g = 102 'f', b = 102 'f'}, {
r = 51 '3', g = 102 'f', b = 153 '\231'}, {r = 51 '3', g = 102 'f', b = 204 '\314'}, {r = 51 '3',
g = 102 'f', b = 255 '\377'}, {r = 51 '3', g = 153 '\231', b = 0 '\000'}, {r = 51 '3',
g = 153 '\231', b = 51 '3'}, {r = 51 '3', g = 153 '\231', b = 102 'f'}, {r = 51 '3',
g = 153 '\231', b = 153 '\231'}, {r = 51 '3', g = 153 '\231', b = 204 '\314'}, {r = 51 '3',
g = 153 '\231', b = 255 '\377'}, {r = 51 '3', g = 204 '\314', b = 0 '\000'}, {r = 51 '3',
g = 204 '\314', b = 51 '3'}, {r = 51 '3', g = 204 '\314', b = 102 'f'}, {r = 51 '3',
g = 204 '\314', b = 153 '\231'}, {r = 51 '3', g = 204 '\314', b = 204 '\314'}, {r = 51 '3',
g = 204 '\314', b = 255 '\377'}, {r = 51 '3', g = 255 '\377', b = 0 '\000'}, {r = 51 '3',
g = 255 '\377', b = 51 '3'}, {r = 51 '3', g = 255 '\377', b = 102 'f'}, {r = 51 '3',
g = 255 '\377', b = 153 '\231'}, {r = 51 '3', g = 255 '\377', b = 204 '\314'}, {r = 51 '3',
g = 255 '\377', b = 255 '\377'}, {r = 102 'f', g = 0 '\000', b = 0 '\000'}, {r = 102 'f',
g = 0 '\000', b = 51 '3'}, {r = 102 'f', g = 0 '\000', b = 102 'f'}, {r = 102 'f', g = 0 '\000',
b = 153 '\231'}, {r = 102 'f', g = 0 '\000', b = 204 '\314'}, {r = 102 'f', g = 0 '\000',
b = 255 '\377'}, {r = 102 'f', g = 51 '3', b = 0 '\000'}, {r = 102 'f', g = 51 '3', b = 51 '3'}, {
r = 102 'f', g = 51 '3', b = 102 'f'}, {r = 102 'f', g = 51 '3', b = 153 '\231'}, {r = 102 'f',
g = 51 '3', b = 204 '\314'}, {r = 102 'f', g = 51 '3', b = 255 '\377'}, {r = 102 'f',
g = 102 'f', b = 0 '\000'}, {r = 102 'f', g = 102 'f', b = 51 '3'}, {r = 102 'f', g = 102 'f',
b = 102 'f'}, {r = 102 'f', g = 102 'f', b = 153 '\231'}, {r = 102 'f', g = 102 'f',
b = 204 '\314'}, {r = 102 'f', g = 102 'f', b = 255 '\377'}, {r = 102 'f', g = 153 '\231',
b = 0 '\000'}, {r = 102 'f', g = 153 '\231', b = 51 '3'}, {r = 102 'f', g = 153 '\231',
b = 102 'f'}, {r = 102 'f', g = 153 '\231', b = 153 '\231'}, {r = 102 'f', g = 153 '\231',
b = 204 '\314'}, {r = 102 'f', g = 153 '\231', b = 255 '\377'}, {r = 102 'f', g = 204 '\314',
b = 0 '\000'}, {r = 102 'f', g = 204 '\314', b = 51 '3'}, {r = 102 'f', g = 204 '\314',
b = 102 'f'}, {r = 102 'f', g = 204 '\314', b = 153 '\231'}, {r = 102 'f', g = 204 '\314',
b = 204 '\314'}, {r = 102 'f', g = 204 '\314', b = 255 '\377'}, {r = 102 'f', g = 255 '\377',
b = 0 '\000'}, {r = 102 'f', g = 255 '\377', b = 51 '3'}, {r = 102 'f', g = 255 '\377',
b = 102 'f'}, {r = 102 'f', g = 255 '\377', b = 153 '\231'}, {r = 102 'f', g = 255 '\377',
b = 204 '\314'}, {r = 102 'f', g = 255 '\377', b = 255 '\377'}, {r = 153 '\231', g = 0 '\000',
b = 0 '\000'}, {r = 153 '\231', g = 0 '\000', b = 51 '3'}, {r = 153 '\231', g = 0 '\000',
b = 102 'f'}, {r = 153 '\231', g = 0 '\000', b = 153 '\231'}, {r = 153 '\231', g = 0 '\000',
b = 204 '\314'}, {r = 153 '\231', g = 0 '\000', b = 255 '\377'}, {r = 153 '\231', g = 51 '3',
b = 0 '\000'}, {r = 153 '\231', g = 51 '3', b = 51 '3'}, {r = 153 '\231', g = 51 '3',
b = 102 'f'}, {r = 153 '\231', g = 51 '3', b = 153 '\231'}, {r = 153 '\231', g = 51 '3',
b = 204 '\314'}, {r = 153 '\231', g = 51 '3', b = 255 '\377'}, {r = 153 '\231', g = 102 'f',
b = 0 '\000'}, {r = 153 '\231', g = 102 'f', b = 51 '3'}, {r = 153 '\231', g = 102 'f',
b = 102 'f'}, {r = 153 '\231', g = 102 'f', b = 153 '\231'}, {r = 153 '\231', g = 102 'f',
b = 204 '\314'}, {r = 153 '\231', g = 102 'f', b = 255 '\377'}, {r = 153 '\231', g = 153 '\231',
b = 0 '\000'}, {r = 153 '\231', g = 153 '\231', b = 51 '3'}, {r = 153 '\231', g = 153 '\231',
b = 102 'f'}, {r = 153 '\231', g = 153 '\231', b = 153 '\231'}, {r = 153 '\231', g = 153 '\231',
b = 204 '\314'}, {r = 153 '\231', g = 153 '\231', b = 255 '\377'}, {r = 153 '\231',
g = 204 '\314', b = 0 '\000'}, {r = 153 '\231', g = 204 '\314', b = 51 '3'}, {r = 153 '\231',
g = 204 '\314', b = 102 'f'}, {r = 153 '\231', g = 204 '\314', b = 153 '\231'}, {r = 153 '\231',
g = 204 '\314', b = 204 '\314'}, {r = 153 '\231', g = 204 '\314', b = 255 '\377'}, {
r = 153 '\231', g = 255 '\377', b = 0 '\000'}, {r = 153 '\231', g = 255 '\377', b = 51 '3'}, {
r = 153 '\231', g = 255 '\377', b = 102 'f'}, {r = 153 '\231', g = 255 '\377', b = 153 '\231'}, {
r = 153 '\231', g = 255 '\377', b = 204 '\314'}, {r = 153 '\231', g = 255 '\377',
b = 255 '\377'}, {r = 204 '\314', g = 0 '\000', b = 0 '\000'}, {r = 204 '\314', g = 0 '\000',
b = 51 '3'}, {r = 204 '\314', g = 0 '\000', b = 102 'f'}, {r = 204 '\314', g = 0 '\000',
b = 153 '\231'}, {r = 204 '\314', g = 0 '\000', b = 204 '\314'}, {r = 204 '\314', g = 0 '\000',
b = 255 '\377'}, {r = 204 '\314', g = 51 '3', b = 0 '\000'}, {r = 204 '\314', g = 51 '3',
b = 51 '3'}, {r = 204 '\314', g = 51 '3', b = 102 'f'}, {r = 204 '\314', g = 51 '3',
b = 153 '\231'}, {r = 204 '\314', g = 51 '3', b = 204 '\314'}, {r = 204 '\314', g = 51 '3',
b = 255 '\377'}, {r = 204 '\314', g = 102 'f', b = 0 '\000'}, {r = 204 '\314', g = 102 'f',
b = 51 '3'}, {r = 204 '\314', g = 102 'f', b = 102 'f'}, {r = 204 '\314', g = 102 'f',
b = 153 '\231'}, {r = 204 '\314', g = 102 'f', b = 204 '\314'}, {r = 204 '\314', g = 102 'f',
b = 255 '\377'}, {r = 204 '\314', g = 153 '\231', b = 0 '\000'}, {r = 204 '\314', g = 153 '\231',
b = 51 '3'}, {r = 204 '\314', g = 153 '\231', b = 102 'f'}, {r = 204 '\314', g = 153 '\231',
b = 153 '\231'}, {r = 204 '\314', g = 153 '\231', b = 204 '\314'}, {r = 204 '\314',
g = 153 '\231', b = 255 '\377'}, {r = 204 '\314', g = 204 '\314', b = 0 '\000'}, {r = 204 '\314',
g = 204 '\314', b = 51 '3'}, {r = 204 '\314', g = 204 '\314', b = 102 'f'}, {r = 204 '\314',
g = 204 '\314', b = 153 '\231'}, {r = 204 '\314', g = 204 '\314', b = 204 '\314'}, {
r = 204 '\314', g = 204 '\314', b = 255 '\377'}, {r = 204 '\314', g = 255 '\377', b = 0 '\000'}, {
r = 204 '\314', g = 255 '\377', b = 51 '3'}, {r = 204 '\314', g = 255 '\377', b = 102 'f'}, {
r = 204 '\314', g = 255 '\377', b = 153 '\231'}, {r = 204 '\314', g = 255 '\377',
b = 204 '\314'}, {r = 204 '\314', g = 255 '\377', b = 255 '\377'}, {r = 255 '\377', g = 0 '\000',
b = 0 '\000'}, {r = 255 '\377', g = 0 '\000', b = 51 '3'}, {r = 255 '\377', g = 0 '\000',
b = 102 'f'}, {r = 255 '\377', g = 0 '\000', b = 153 '\231'}...}}, charset_g0 = 0x0,
charset_g1 = 0x0, charset_g2 = 0x0, charset_g3 = 0x0, charset_gl = 0x0, charset_gr = 0x0,
charset_single_shift = 0x0, tabstop = 8 '\b', tab_ruler = 0x7fffef415b30, lines = {cap = 32, size = 24,
buf = 0x7ffff76c25a0, dtor_arg = 0x7fffffffdc00}, alt_lines = {cap = 1024, size = 726,
buf = 0x7fffee73dcc0, dtor_arg = 0x7fffffffdc00}, active_hyperlink = 0x0, last_interted = 0x0,
last_codepoint = 0 U'\000', blank_space = {rune = {code = 0 U'\000', combine = U"\000",
style = VT_RUNE_NORMAL}, ln_clr_data = {rgb = {r = 0 '\000', g = 0 '\000', b = 0 '\000'},
index = 0}, fg_data = {rgb = {r = 255 '\377', g = 255 '\377', b = 0 '\000'}, index = -1},
bg_data = {rgba = {r = 255 '\377', g = 255 '\377', b = 0 '\000', a = 0 '\000'}, index = -1},
hyperlink_idx = 0, bg_is_palette_entry = true, fg_is_palette_entry = true,
ln_clr_is_palette_entry = false, line_color_not_default = false, invert = false, dim = false,
hidden = false, blinkng = false, underlined = false, strikethrough = false, doubleunderline = false,
curlyunderline = false, overline = false}, cursor = {type = CURSOR_UNDERLINE, blinking = 1 '\001',
hidden = 0 '\000', row = 23, col = 0}, alt_cursor_pos = 0, saved_cursor_pos = 0,
alt_active_line = 725, saved_active_line = 0, scroll_region_top = 0, scroll_region_bottom = 23,
modes = {no_wraparound = 0 '\000', reverse_wraparound = 0 '\000', origin = 0 '\000',
allow_column_size_switching = 0 '\000', bracketed_paste = 0 '\000', del_sends_del = 0 '\000',
no_alt_sends_esc = 0 '\000', x10_mouse_compat = 0 '\000', mouse_btn_report = 0 '\000',
mouse_motion_on_btn_report = 0 '\000', mouse_motion_report = 0 '\000',
window_focus_events_report = 0 '\000', extended_report = 0 '\000', video_reverse = 0 '\000',
auto_repeat = 0 '\000', application_keypad = 0 '\000', application_keypad_cursor = 0 '\000',
pop_on_bell = 0 '\000', urgency_on_bell = 0 '\000', left_and_right_margin = 0 '\000',
margin_bell = 0 '\000', sixel_scrolling = 0 '\000', sixel_scrolling_move_cursor_right = 0 '\000'},
xterm_modify_keyboard = 0 '\000', xterm_modify_cursor_keys = 2 '\002',
xterm_modify_function_keys = 2 '\002', xterm_modify_other_keys = 0 '\000'}, freetype = {
initialized = true, ft = 0x7ffff7aaba60, primaries = {cap = 4, size = 4, buf = 0x7ffff7b499f0},
symbol_faces = {cap = 4, size = 3, buf = 0x7ffff7a79ec0}, color_faces = {cap = 4, size = 1,
buf = 0x7ffff7a7ee80}, primary_output_type = FT_OUTPUT_RGB_H, target_output_type = FT_OUTPUT_RGB_H,
gw = 0, line_height_pixels = 30, glyph_width_pixels = 16, blend_bitmap_initialized = false,
blend_output_bitmap = {rows = 0, width = 0, pitch = 0, buffer = 0x0, num_grays = 0,
pixel_mode = 0 '\000', palette_mode = 0 '\000', palette = 0x0},
conversion_bitmap_initialized = false, converted_output_bitmap = {rows = 0, width = 0, pitch = 0,
buffer = 0x0, num_grays = 0, pixel_mode = 0 '\000', palette_mode = 0 '\000', palette = 0x0},
converted_output_pixels = 0x0, output = {ft_slot = 0x7ffff7999c70, width = 14, height = 20, left = 2,
top = 20, alignment = 4 '\004', pixels = 0x7fffefdb3380, type = FT_OUTPUT_RGB_H, rgb_flip = false,
style = FT_STYLE_BOLD}}, monitor = {child_fd = 3, parent_fd = 5, extra_fd = 5, pollfds = {{fd = 3,
events = 1, revents = 1}, {fd = 5, events = 1, revents = 0}}, read_info_up_to_date = false,
child_pid = 3460, child_is_dead = false,
input_buffer = "\033[23;1t\033[24;1H\033[K\033[24;1H\033[?2004l\033[?1l\033>\033[?25h\033[>4;m\033[?1049l\033[23;0;0t5m<F1>\033[m for on-line help\033[17;18Htype :help version8\033[38;", callbacks = {
user_data = 0x7fffffffdbf0, on_exit = 0x5555555931eb <App_exit_handler>}}, written_bytes = 0,
resolution = {first = 1316, second = 756}, swap_performed = false,
closest_pending_wakeup = 0x7ffff7a1b740, exit = false, hostname = 0x0, click_count = 0 '\000',
next_click_limit = {tv_sec = 169750, tv_nsec = 453050404}, selection_dragging_left = false,
selection_dragging_right = SELECT_DRAG_RIGHT_NONE, keyboard_select_mode = false, scrollbar_hide_time = {
tv_sec = 0, tv_nsec = 0}, autoscroll_next_step = {tv_sec = 169750, tv_nsec = 576717975},
scrollbar_drag_position = 0, last_scrolling = false, ksm_cursor = {type = CURSOR_BLOCK,
blinking = 0 '\000', hidden = 0 '\000', row = 0, col = 0}, ksm_input_buf = {cap = 4, size = 0,
buf = 0x7ffff7aca490 "und"}, ksm_last_input = {tv_sec = 0, tv_nsec = 0}, ui = {
pixel_offset_x = 18 '\022', pixel_offset_y = 18 '\022', scrollbar = {visible = false, dragging = false,
width = 10 '\n', top = 1.93379307, length = 0.0662068948, opacity = 1}, cursor = 0x7fffffffe2c0,
hovered_link = {active = false, start_line_idx = 0, end_line_idx = 0, start_cell_idx = 0,
end_cell_idx = 0}, draw_out_of_focus_tint = false}, queued_output_buffer = {cap = 0, size = 0,
buf = 0x0}, autoscroll = AUTOSCROLL_NONE}
Huzza! Thanks a lot, commit https://github.com/91861/wayst/commit/33fbfb206fdc530374a19e049bea195a5b4a8b89 fixed this issue.
A very happy user.
I've yet to find out how it can be reproduced reliably, butwhen I exit from vim, after having worked on some file there seems to be a chance that wayst will segfault. There's also been segfaults when I use tmux, and both of these use ncurses.Running wayst on a wayland compositor.