Public bug reported: This problem appears only on Ubuntu 20.04 with Wine 5.0 installed from Ubuntu repository. If I build Wine 5.0 myself or install Wine 4.0.4 from WineHQ repository, then there is no problem, so I assume the problem is in Ubuntu 20.04 build of Wine.
I have written a shared library for our application using Winelib project, which calls native Linux API. C++ is used. Crash happens on first C++ exception thrown. App which shows the problem: #include <stdexcept> #include <stdio.h> int main() { printf("start\n"); try { throw std::runtime_error("desc"); } catch (std::exception &ex) { printf("in catch\n"); } printf("end\n"); } built with: g++ -c -fPIC t.cpp ../wine-git_64/tools/winegcc/wineg++ -m64 -B../wine-git_64/tools/winebuild -L ../wine-git_64/dlls/kernel32/ -L ../wine-git_64/dlls/advapi32/ -L ../wine-git_64/dlls/user32/ -L ../wine-git_64/dlls/winecrt0 -L ../wine-git_64/dlls/ntdll/ -L ../wine-git_64/libs/wine -o tt t.o where '../wine-git_64/' is directory where I cloned and built Wine64 5.0 stable to get wineg++ linker. Run the application as: wine tt.exe.so It prints 'start', then it crashes. The application crashes in Wine (Wine dialog pops-up), so I think Ubuntu is not aware of this crash. Contents of Wine crash dialog (backtrace.txt): Unhandled exception: assertion failed, invalid program stack in 64-bit code (0x00007fa3b70d118b). Register dump: rip:00007fa3b70d118b rsp:000000000022f1f0 rbp:000000007da59a00 eflags:00000246 ( - -- I Z- -P- ) rax:0000000000000000 rbx:00007fa3b7083b80 rcx:00007fa3b70d118b rdx:0000000000000000 rsi:000000000022f1f0 rdi:0000000000000002 r8:0000000000000000 r9:000000000022f1f0 r10:0000000000000008 r11:0000000000000246 r12:000000000022f450 r13:0000000000000001 r14:0000000000000000 r15:0000000000000004 Stack dump: 0x000000000022f1f0: 0000000000000000 00007fa3b6f0db45 0x000000000022f200: 0000000000000000 00007fa3b6f0db45 0x000000000022f210: 0000000000000000 000000000022f370 0x000000000022f220: 00007fa3b646a2d4 00007fa3b6f0eae1 0x000000000022f230: 00007fa3b6f11cac 00007fa3b6f0eae1 0x000000000022f240: 00007fa3b6473608 0000000000001265 0x000000000022f250: 0000000000000049 00000000000000d1 0x000000000022f260: 000000000000038b 0000000000000000 0x000000000022f270: fffffffe7fffffff ffffffffffffffff 0x000000000022f280: ffffffffffffffff ffffffffffffffff 0x000000000022f290: ffffffffffffffff ffffffffffffffff 0x000000000022f2a0: ffffffffffffffff ffffffffffffffff Backtrace: =>0 0x00007fa3b70d118b execlp+0xffffffffffffffff() in libc.so.6 (0x000000007da59a00) 1 0x00007fa3b70b0859 execlp+0xffffffffffffffff() in libc.so.6 (0x000000007da59a00) 2 0x00007fa3b6eff667 __floattisf+0xffffffffffffffff() in libgcc_s.so.1 (0x000000007da59a00) 3 0x00007fa3b6f0d281 __extendsftf2+0x5590() in libgcc_s.so.1 (0x000000000022f9b0) 0x00007fa3b70d118b execlp+0xffffffffffffffff in libc.so.6: movq 0x0000000000000108(%rsp),%rax Modules: Module Address Debug info Name (21 modules) ELF 7b000000- 7b0e2000 Deferred kernelbase<elf> \-PE 7b010000- 7b0e2000 \ kernelbase ELF 7b400000- 7b68b000 Deferred kernel32<elf> \-PE 7b420000- 7b68b000 \ kernel32 ELF 7bc00000- 7befb000 Deferred ntdll<elf> \-PE 7bc20000- 7befb000 \ ntdll ELF 7c000000- 7c005000 Deferred <wine-loader> ELF 7fa3b6182000- 7fa3b61b2000 Deferred libtinfo.so.6 ELF 7fa3b61b2000- 7fa3b61db000 Deferred libncurses.so.6 ELF 7fa3b64d8000- 7fa3b64ec000 Deferred libnss_files.so.2 ELF 7fa3b6ed5000- 7fa3b6efc000 Deferred liblzma.so.5 ELF 7fa3b6efc000- 7fa3b6f17000 Dwarf libgcc_s.so.1 ELF 7fa3b6f17000- 7fa3b7066000 Deferred libm.so.6 ELF 7fa3b7066000- 7fa3b7083000 Deferred libunwind.so.8 ELF 7fa3b7085000- 7fa3b708b000 Deferred libdl.so.2 ELF 7fa3b708b000- 7fa3b727d000 Dwarf libc.so.6 ELF 7fa3b727d000- 7fa3b72a0000 Deferred libpthread.so.0 ELF 7fa3b72a6000- 7fa3b72bc000 Deferred tt<elf> \-PE 7fa3b72b0000- 7fa3b72bc000 \ tt ELF 7fa3b72bc000- 7fa3b745f000 Dwarf libwine.so.1 ELF 7fa3b7461000- 7fa3b7491000 Deferred ld-linux-x86-64.so.2 Threads: process tid prio (all id:s are in hex) 0000000e services.exe 00000023 0 0000001a 0 00000013 0 00000010 0 0000000f 0 00000011 plugplay.exe 00000017 0 00000016 0 00000012 0 00000018 winedevice.exe 00000020 0 0000001d 0 0000001c 0 0000001b 0 00000019 0 0000001e explorer.exe 00000029 0 00000028 0 00000027 0 0000001f 0 00000021 winedevice.exe 00000026 0 00000025 0 00000024 0 00000022 0 00000039 (D) Z:\home\markok\tmp\tt.exe 0000003a 0 <== System information: Wine build: wine-5.0 (Ubuntu 5.0-3ubuntu1) Platform: x86_64 Version: Windows 7 Host system: Linux Host version: 5.4.0-33-generic ========================================== Output in console: start wine: Assertion failed at address 00007FA3B70D118B (thread 003a), starting debugger... 003a:err:seh:call_stack_handlers invalid frame 7fa3b72b821b (0x132000-0x230000) ** Affects: wine (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1881293 Title: native shared library crashes if C++ exceptions are used on Ubuntu 20.05 Wine64 build To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/wine/+bug/1881293/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs