Help debug stack overflow on Tag&Rename that used to work

Questions about Wine on Linux
Post Reply
ronjouch
Level 1
Level 1
Posts: 5
Joined: Mon Sep 17, 2018 11:22 am

Help debug stack overflow on Tag&Rename that used to work

Post by ronjouch » Mon Sep 17, 2018 12:07 pm

I just reinstalled my distro (Arch Linux) for reasons unrelated to Wine.

After the reinstall, some Windows programs (Picasa 3, winecfg, (wine) regedit, wine control) that used to run fine in Wine 3.16 before the reinstall still work in freshly-reinstalled Wine 3.16, but one (Tag & Rename v3.9.15) doesn't, and crashes with error err:seh:setup_exception_record stack overflow.

I'd like help to understand what's wrong. Here's the crash:

Code: Select all

 ~ uname -a
Linux t 4.18.7-arch1-1-ARCH #1 SMP PREEMPT Sun Sep 9 11:27:58 UTC 2018 x86_64 GNU/Linux

 ~ wine --version
wine-3.16

 ~ rm -rf ~/.wine

 ~ winecfg  # works fine, recreates prefix, leaving everything default

 ~ wine ~/Apps/tagrename/TagRename.exe 
0009:fixme:thread:GetThreadUILanguage : stub, returning default language.
0009:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x32d94c, (nil) 0x32d974
0009:fixme:nls:get_dummy_preferred_ui_language (0x38 0x32d94c (nil) 0x32d974) returning a dummy value (current locale)
0009:fixme:nls:GetThreadPreferredUILanguages 00000038, 0x32d94c, 0x145a680 0x32d974
0009:fixme:nls:get_dummy_preferred_ui_language (0x38 0x32d94c 0x145a680 0x32d974) returning a dummy value (current locale)
0009:fixme:wtsapi:WTSRegisterSessionNotification Stub 0x1007c 0x00000000
0009:fixme:uxtheme:BufferedPaintInit Stub ()
0009:fixme:shell:FileIconInit (true)
0009:fixme:shell:SHGetKnownFolderIDList unsupported flags: 0x00001000
0009:fixme:shell:SHGetKnownFolderIDList unsupported flags: 0x00001000
0009:fixme:shell:SHGetKnownFolderIDList unsupported flags: 0x00001000
0009:err:seh:setup_exception_record stack overflow 1692 bytes in thread 0009 eip 7bc84568 esp 00230c94 stack 0x230000-0x231000-0x330000
^C002a:fixme:console:CONSOLE_DefaultHandler Terminating process 8 on event 0
I tried, without success,
  • As you see from the log above, to remove the existing ~/.wine prefix and get a fresh new one.
  • To install wine_gecko (2.47-1) and wine-mono (4.7.3-1).
  • To install various 32bit libs recommended by Arch's wiki.
  • To create a 32bit prefix and run from it.
  • To strace my run, but there's lots and I don't know what's (a)normal. Here's a (partial/truncated strace output):

    Code: Select all

    execve("/usr/bin/wine", ["wine", "/home/ronj/Apps/tagrename/TagRename.exe"], 0x7ffc680678b8 /* 68 vars */) = 0
    brk(NULL)                               = 0x7d3b7000
    readlink("/proc/self/exe", "/usr/bin/wine", 4096) = 13
    access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/tls/i686/sse2/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/tls/i686/sse2", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/tls/i686/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/tls/i686", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/tls/sse2/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/tls/sse2", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/tls/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/tls", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/i686/sse2/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/i686/sse2", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/i686/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/i686", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/sse2/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/usr/bin/../lib32/sse2", 0xffe94410) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/bin/../lib32/libwine.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2604\0\0004\0\0\0"..., 512) = 512
    mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7f87000
    fstat64(3, {st_mode=S_IFREG|0755, st_size=1713920, ...}) = 0
    mmap2(NULL, 1795616, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7dd0000
    mmap2(0xf7dd3000, 40960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0xf7dd3000
    mmap2(0xf7ddd000, 1658880, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd000) = 0xf7ddd000
    mmap2(0xf7f72000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a1000) = 0xf7f72000
    mmap2(0xf7f74000, 75296, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7f74000
    close(3)                                = 0
    openat(AT_FDCWD, "/usr/bin/../lib32/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0]\0\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=156360, ...}) = 0
    mmap2(NULL, 131356, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7daf000
    mprotect(0xf7db4000, 98304, PROT_NONE)  = 0
    mmap2(0xf7db4000, 65536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0xf7db4000
    mmap2(0xf7dc4000, 28672, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xf7dc4000
    mmap2(0xf7dcc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0xf7dcc000
    mmap2(0xf7dce000, 4380, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7dce000
    close(3)                                = 0
    openat(AT_FDCWD, "/usr/bin/../lib32/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\254\1\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=2201276, ...}) = 0
    mmap2(NULL, 1951552, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7bd2000
    mprotect(0xf7beb000, 1826816, PROT_NONE) = 0
    mmap2(0xf7beb000, 1372160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0xf7beb000
    mmap2(0xf7d3a000, 450560, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x168000) = 0xf7d3a000
    mmap2(0xf7da9000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d6000) = 0xf7da9000
    mmap2(0xf7dac000, 10048, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xf7dac000
    close(3)                                = 0
    openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=278201, ...}) = 0
    mmap2(NULL, 278201, PROT_READ, MAP_PRIVATE, 3, 0) = 0xf7b8e000
    close(3)                                = 0
    openat(AT_FDCWD, "/usr/lib32/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \21\0\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0755, st_size=17768, ...}) = 0
    mmap2(NULL, 20532, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xf7b88000
    mmap2(0xf7b89000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xf7b89000
    mmap2(0xf7b8b000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0xf7b8b000
    mmap2(0xf7b8c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0xf7b8c000
    close(3)                                = 0
    mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7b86000
    set_thread_area({entry_number=-1, base_addr=0xf7b86700, limit=0x0fffff, seg_32bit=1, contents=0, read_exec_only=0, limit_in_pages=1, seg_not_present=0, useable=1}) = 0 (entry_number=12)
    mprotect(0xf7da9000, 8192, PROT_READ)   = 0
    mprotect(0xf7b8c000, 4096, PROT_READ)   = 0
    mprotect(0xf7dcc000, 4096, PROT_READ)   = 0
    mprotect(0xf7f72000, 4096, PROT_READ)   = 0
    mprotect(0x7c003000, 4096, PROT_READ)   = 0
    mprotect(0xf7fb6000, 4096, PROT_READ)   = 0
    munmap(0xf7b8e000, 278201)              = 0
    set_tid_address(0xf7b86768)             = 3119
    set_robust_list(0xf7b86770, 12)         = 0
    rt_sigaction(SIGRTMIN, {sa_handler=0xf7db4710, sa_mask=[], sa_flags=SA_SIGINFO}, NULL, 8) = 0
    rt_sigaction(SIGRT_1, {sa_handler=0xf7db47a0, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
    rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
    ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
    
    
    ================================================================================
    [~80000 lines truncated]
    ================================================================================
    
    
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base=";\3\5\0\324\10\300\3\0\0\0\0\0\0\0\0\200\78\4<\10\2\0\324\10\300\0037\0\4\0"..., iov_len=88}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 88
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    mmap2(0x1850000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x1850000
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    writev(3, [{iov_base="\332\0\0\0006\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0"..., iov_len=64}, {iov_base="c\0l\0s\0E\0a\0s\0y\0T\0h\0r\0e\0a\0d\0F\0i\0l\0"..., iov_len=54}], 2) = 118
    read(5, "\0\0\0\0\0\0\0\0r\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    writev(3, [{iov_base="\237\0\0\0006\0\0\0\0\0\0\0,\0\2\0\0\0\0\0\0\0\0\0\0\0@\0\0\0\0\0"..., iov_len=64}, {iov_base="c\0l\0s\0E\0a\0s\0y\0T\0h\0r\0e\0a\0d\0F\0i\0l\0"..., iov_len=54}], 2) = 118
    read(5, "\0\0\0\0\0\0\0\0\250\0\r\0,\0\2\0\0\0\0\0\0\0\0\0\330\22\257\1\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\244\0\0\0\0\0\0\0\0\0\0\0K\0\0\0\250\0\r\0\0\0\300\4\0\1\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\327\0\0\0\0\0\0\0\6\2\0\0\5\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\216\0\1\0\0\0\0\0\0\0\0\0\1\0\0\0l\10\200\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\331\0\0\0\0\0\0\0\6\2\0\0\216\0\1\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\330\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\327\0\0\0\0\0\0\0\6\2\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\214\0\1\0\0\0\0\0\0\0\0\0\1\0\0\0X\7\200\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\331\0\0\0\0\0\0\0\6\2\0\0\214\0\1\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\330\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\313\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\210\0\1\0\0\0\0\0\210\0\1\0\210\0\1\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\261\0\0\0\0\0\0\0\0\1\0\0\250\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    uname({sysname="Linux", nodename="t", ...}) = 0
    getpid()                                = 3119
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    writev(3, [{iov_base="\266\0\0\0.\0\0\0\0\0\0\0\250\0\r\0\7\0\340\3\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=64}, {iov_base="_\0_\0w\0i\0n\0e\0_\0x\0001\0001\0_\0w\0h\0o\0l\0e\0"..., iov_len=46}], 2) = 110
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\23\1\0\0\0\0\0\0\0\0\0\0\250\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "x\5\1\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    poll([{fd=11, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=11, revents=POLLIN|POLLOUT}])
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\7\3\5\1\335\267\5\0\210\1\0\0\4\0\340\3\0\0\0\0\35\4\256\1%\1\2\0\20\0\0\2"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1088
    writev(11, [{iov_base="\1\30\17\0\7\0\340\3\210\1\0\0\0\0\0\0p\0\33\0\0\0\1\0!\0\0\0X.\0\0"..., iov_len=612}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 612
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0\7\1\7\0\340\3=\1\0\0\33\270\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 448
    recvmsg(11, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\27\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0>\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base=";\3\5\0\326\10\300\3\0\0\0\0\0\0\0\0\200\78\0047\10\4\0\330\10\300\3\2\0\300\3"..., iov_len=36}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 36
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base="7\3\4\0\331\10\300\3\2\0\300\3\0\0\0\0", iov_len=16}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 16
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base="<\3\2\0\331\10\300\3<\0\2\0\330\10\300\0037\7\4\0\332\10\300\3\2\0\300\3\0\0\0\0", iov_len=32}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 32
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base="7\3\4\0\333\10\300\3\2\0\300\3\0\0\0\0", iov_len=16}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 16
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    writev(3, [{iov_base="i\0\0\0@\0\0\0\0\0\0\0\34\0\0\0\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=64}, {iov_base="S\0o\0f\0t\0w\0a\0r\0e\0\\\0W\0i\0n\0e\0\\\0X\0001\0"..., iov_len=64}], 2) = 128
    read(5, "4\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    openat(AT_FDCWD, "/home/ronj/.icons/Adwaita/cursors/left_ptr", O_RDONLY) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/home/ronj/.icons/Adwaita/index.theme", O_RDONLY) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/usr/share/icons/Adwaita/cursors/left_ptr", O_RDONLY) = 14
    fstat64(14, {st_mode=S_IFREG|0644, st_size=69120, ...}) = 0
    read(14, "Xcur\20\0\0\0\0\0\1\0\5\0\0\0\2\0\375\377\30\0\0\0L\0\0\0\2\0\375\377"..., 4096) = 4096
    _llseek(14, 0, [0], SEEK_SET)           = 0
    read(14, "Xcur\20\0\0\0\0\0\1\0\5\0\0\0\2\0\375\377\30\0\0\0L\0\0\0\2\0\375\377"..., 4096) = 4096
    close(14)                               = 0
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base="<\3\2\0\333\10\300\3<\0\2\0\332\10\300\0035 \4\0\334\10\300\3\210\1\0\0\30\0\30\0"..., iov_len=2444}, {iov_base="XFIXES", iov_len=6}, {iov_base="\0\0", iov_len=2}], 3) = 2452
    poll([{fd=10, events=POLLIN}], 1, -1)   = 1 ([{fd=10, revents=POLLIN}])
    recvmsg(10, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0z\26\0\0\0\0\1\212W\214\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base="\212\0\3\0\5\0\0\0\0\0\0\0", iov_len=12}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 12
    poll([{fd=10, events=POLLIN}], 1, -1)   = 1 ([{fd=10, revents=POLLIN}])
    recvmsg(10, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0{\26\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}])
    writev(10, [{iov_base="\212\27\5\0\337\10\300\3\10\0\0\0left_ptr\212\27\5\0\337\10\300\3\10\0\30\0"..., iov_len=56}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 56
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    writev(3, [{iov_base="\252\0\0\0000\0\0\0\0\0\0\0\24\0\0\0\250\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=64}, {iov_base="\3\0\0\0\26\0\0\0m\0\0\0\30\0\0\0\3\0\0\0\26\0\0\0m\0\0\0\30\0\0\0"..., iov_len=48}], 2) = 112
    read(5, "\0\0\0\0\0\0\0\0\0\0\300\4\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=11, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=11, revents=POLLIN|POLLOUT}])
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\6\0\26\1\35\270\5\0\210\1\0\0\4\0\340\3\0\0\0\0\325\3\347\1\335\0;\0\20\0\1\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    writev(11, [{iov_base="\22\0\30\0\7\0\340\3(\0\0\0)\0\0\0 \0\33\0\22\0\0\0004\2\0\0\3\0\0\0"..., iov_len=168}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 168
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0\27\1\7\0\340\3(\0\0\0\36\270\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 64
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\26\0\31\1\7\0\340\3\7\0\340\3\6\0\340\3\3\0\26\0j\0\2\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(11, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\327\0\0\0\0\0\0\0\6\2\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\214\0\1\0\0\0\0\0\0\0\0\0\1\0\0\0X\7\200\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\331\0\0\0\0\0\0\0\6\2\0\0\214\0\1\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\330\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\327\0\0\0\0\0\0\0\6\2\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\214\0\1\0\0\0\0\0\0\0\0\0\1\0\0\0X\7\200\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\331\0\0\0\0\0\0\0\6\2\0\0\214\0\1\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\330\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    writev(3, [{iov_base="\252\0\0\0000\0\0\0\0\0\0\0\20\0\0\0\250\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=64}, {iov_base="\3\0\0\0\26\0\0\0m\0\0\0\30\0\0\0\3\0\0\0\26\0\0\0m\0\0\0\30\0\0\0"..., iov_len=48}], 2) = 112
    read(5, "\0\0\0\0\0\0\0\0\0\0\300\4\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(10, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\251\0\0\0\0\0\0\0\0\0\0\0\250\0\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0,\0\2\0\0\0\0\0\236\0\1\0\210\0\1\0\210\0\1\0006\0\2\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    poll([{fd=11, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=11, revents=POLLIN|POLLOUT}])
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\6\0\31\1\37\270\5\0\210\1\0\0\4\0\340\3\0\0\0\0\324\3\350\1\334\0<\0\20\0\1\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    writev(11, [{iov_base="\22\0\30\0\7\0\340\3(\0\0\0)\0\0\0 \0\33\0\22\0\0\0004\2\0\0\3\0\0\0"..., iov_len=168}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 168
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\34\0\32\1\7\0\340\3(\0\0\0\37\270\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 64
    recvmsg(11, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\327\0\0\0\0\0\0\0\6\2\0\0\4\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\214\0\1\0\0\0\0\0\0\0\0\0\1\0\0\0X\7\200\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\331\0\0\0\0\0\0\0\6\2\0\0\214\0\1\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\330\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\243\0\0\0\0\0\0\0\0\0\0\0,\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0,\0\2\0,\0\2\0)\0\0\0*\0\0\0\1\200\0\0\1\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\211\0\0\0\0\0\0\0\0\0\0\0*\0\0\0\6\0\0\0\0\0\0\0,\0\2\0\20\2\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\27\1\0\0\0\0\0\0\0\0\0\0\1\0\0\0`\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0>\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    clock_gettime(CLOCK_MONOTONIC_RAW, {tv_sec=374, tv_nsec=417779822}) = 0
    --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x231ffc} ---
    mprotect(0x231000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
    rt_sigreturn({mask=[]})                 = 20720784
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\27\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\0\0\0\0`\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    clock_gettime(CLOCK_MONOTONIC_RAW, {tv_sec=374, tv_nsec=418705133}) = 0
    poll([{fd=11, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=11, revents=POLLIN|POLLOUT}])
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\6\0\34\1!\270\5\0\210\1\0\0\4\0\340\3\0\0\0\0\322\3\352\1\332\0>\0\20\0\1\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    writev(11, [{iov_base="&\0\2\0\210\1\0\0", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8
    poll([{fd=11, events=POLLIN}], 1, -1)   = 1 ([{fd=11, revents=POLLIN}])
    recvmsg(11, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\1\35\1\0\0\0\0\210\1\0\0\4\0\340\3\322\3\352\1\322\3\352\1\20\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(11, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], [], 8) = 0
    write(3, "\250\0\0\0\0\0\0\0\374\1\0\0,\0\2\0\322\3\0\0\352\1\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\0\0\0\0\10\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 64) = 64
    read(5, "\210\0\1\0,\0\2\0", 8)         = 8
    rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
    --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x230fec} ---
    write(2, "0009:err:seh:setup_exception_rec"..., 135) = 135
    rt_sigprocmask(SIG_BLOCK, [HUP INT USR1 USR2 ALRM CHLD IO], NULL, 8) = 0
    close(7)                                = 0
    close(8)                                = 0
    close(5)                                = 0
    close(3)                                = 0
    openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    fstat64(3, {st_mode=S_IFREG|0644, st_size=278201, ...}) = 0
    mmap2(NULL, 278201, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7c41b000
    close(3)                                = 0
    openat(AT_FDCWD, "/usr/lib32/libgcc_s.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0  \0\0004\0\0\0"..., 512) = 512
    fstat64(3, {st_mode=S_IFREG|0644, st_size=788768, ...}) = 0
    mmap2(NULL, 115096, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7c52d000
    mmap2(0x7c52f000, 86016, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7c52f000
    mmap2(0x7c544000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7c544000
    mmap2(0x7c548000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a000) = 0x7c548000
    close(3)                                = 0
    mprotect(0x7c548000, 4096, PROT_READ)   = 0
    munmap(0x7c41b000, 278201)              = 0
    futex(0x7c549034, FUTEX_WAKE_PRIVATE, 2147483647) = 0
    exit(0)                                 = ?
    +++ exited with 0 +++
  • To winedbg my run, I'm able to get a backtrace and stack dump but I'm new to Wine/Windows debugging and I'm clueless here:

    Code: Select all

    Wine-dbg>bt
    Backtrace:                                                                                               
    =>0 0x00000000f7fa6de7 (0x000000000198f9b8)                                                              
      1 0x000000007bc81c43 in ntdll (+0x71c42) (0x000000000198fae8)                                          
      2 0x000000007bc88eb5 in ntdll (+0x78eb4) (0x000000000198fc38)                                          
      3 0x000000007bc8b3cf NtWaitForMultipleObjects+0x2e() in ntdll (0x000000000198fc68)                     
      4 0x000000007b4777ba InterlockedDecrement+0x361() in kernel32 (0x000000000198fdd8)                     
      5 0x000000007b477943 WaitForMultipleObjectsEx+0x32() in kernel32 (0x000000000198fe28)                  
      6 0x000000007b4779ad WaitForSingleObject+0x2c() in kernel32 (0x000000000198fe68)                       
      7 0x00000000006fc2a3 in tagrename (+0x2fc2a2) (0x000000000198fe98)                                     
      8 0x00000000004cd8bd in tagrename (+0xcd8bc) (0x000000000198fec8)                                      
      9 0x0000000000409cea in tagrename (+0x9ce9) (0x000000000198fedc)                                       
      10 0x000000007bc83034 call_thread_func_wrapper+0xb() in ntdll (0x000000000198feec)                     
      11 0x000000007bc865a9 in ntdll (+0x765a8) (0x000000000198ffdc)                                         
      12 0x000000007bc83026 call_thread_exit_func+0x31() in ntdll (0x000000000198ffec)                       
    Wine-dbg>info stack                                                                                      
    Stack dump:                                                                                              
    0x000000000198f930:  000000100198f9b8 f7db03c70198f98c                                                   
    0x000000000198f940:  0000000000000000 0000000000000000                                                   
    0x000000000198f950:  0198f98c7bce4000 7bc804977ffd4000                                                   
    0x000000000198f960:  0198f98c0000000e 0000000000000010                                                   
    0x000000000198f970:  0000000000000000 0198fa0800000000                                                   
    0x000000000198f980:  0000000000000000 ca40db0000000000                                                   
    0x000000000198f990:  0000000000000000 ca40db007bc81931                                                   
    0x000000000198f9a0:  0198fa9c00000008 000000007bc80455                                                   
    0x000000000198f9b0:  0198fa9c00000008 7bc81c430198fae8                                                   
    0x000000000198f9c0:  0000000000000000 0198fa0800000000                                                   
    0x000000000198f9d0:  0198fb1800000000 0198fa5c0198fa64                                                   
    0x000000000198f9e0:  000000000198fa08 0198fa0c7bce4000
Ideas? Thanks for the help :)

User avatar
Bob Wya
Level 12
Level 12
Posts: 2767
Joined: Sat Oct 16, 2010 7:40 pm
Location: Cambridge
Contact:

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by Bob Wya » Mon Sep 17, 2018 6:40 pm

@ronjouch

This issue could be related to: Bug 45199 - Many applications and games fail to start/crash after compiling wine with gcc 8.1.0 and -O2 (GOT/PIC register load code now emitted at function entry, missing hotpatch signatures).

To test this, you would re-compile wine or wine-staging with:

Code: Select all

CFLAGS="${CFLAGS} -O0"
On my Gentoo install this leads to segfaults for MS Visual Studio 2010.
Simply re-compiling wine-staging with -O0 (no optimisation) allows the application to (almost) fully work!

Tag+Rename 3.9.15 works fine for me, with wine-staging-3.16 - compiled with -O0.
I already have it installed in a 32-bit WINEPREFIX - set to Windows XP compatibility.

Note, this is not the correct way to start an application with Wine:

Code: Select all

wine ~/Apps/tagrename/TagRename.exe 
Should be:

Code: Select all

wine start /unix wine ~/Apps/tagrename/TagRename.exe 
OK, the former might work with a portable application...
But many Windows applications rely on the working directory being set, to the same directory as the main executable (since this is the first search directory of the system PATH).

See:

Code: Select all

wine start /?
Bob

User avatar
DarkShadow44
Level 7
Level 7
Posts: 921
Joined: Tue Nov 22, 2016 5:39 pm

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by DarkShadow44 » Fri Sep 21, 2018 6:51 am

Don't think so, doesn't work for me when compiling from source either.

It works when setting windows version to XP though, so this is the culprit. Ever windows version > XP causes the mentioned crash. Can you confirm?

ronjouch
Level 1
Level 1
Posts: 5
Joined: Mon Sep 17, 2018 11:22 am

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by ronjouch » Fri Sep 21, 2018 8:37 am

Sorry for the late answer to your fast response, Bob.

@Bob I did a recompile with O0, but that didn't fix the crash. I wanted to double-check I did everything you asked me to confirm, though, so I needed more time.

@DarkShadow44 I'll try setting Windows version to XP at home this evening.

Thanks to both of you!

ronjouch
Level 1
Level 1
Posts: 5
Joined: Mon Sep 17, 2018 11:22 am

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by ronjouch » Sun Sep 23, 2018 1:28 pm

DarkShadow44 wrote:
Don't think so, doesn't work for me when compiling from source either.

It works when setting windows version to XP though, so this is the culprit. Ever windows version > XP causes the mentioned crash. Can you confirm?
@bob @DarkShadow44 confirmed! Setting Windows version to XP works!

Do you know of any existing relevant bug, or should I file a new one?

Thanks for the help everyone :)

User avatar
DarkShadow44
Level 7
Level 7
Posts: 921
Joined: Tue Nov 22, 2016 5:39 pm

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by DarkShadow44 » Mon Sep 24, 2018 11:57 am

Add a new bugreport please.

ronjouch
Level 1
Level 1
Posts: 5
Joined: Mon Sep 17, 2018 11:22 am

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by ronjouch » Mon Sep 24, 2018 1:12 pm

DarkShadow44 wrote:Add a new bugreport please.
Here you go: Bug 45888 - Tag&Rename stackoverflows on startup unless Windows version is XP.

ronjouch
Level 1
Level 1
Posts: 5
Joined: Mon Sep 17, 2018 11:22 am

Re: Help debug stack overflow on Tag&Rename that used to wor

Post by ronjouch » Sun Dec 30, 2018 12:38 am

Problem still reproducible under 4.0-rc4.

I updated Bug 45888 - Tag&Rename stackoverflows on startup unless Windows version is XP and am available for any debug info.

Post Reply