https://bugs.winehq.org/show_bug.cgi?id=39356
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Version|unspecified |1.6.1 Keywords| |download URL| |http://user.dietrichs.com/d | |ownloads/get=146/mirror=199 | |.html CC| |focht@gmx.net Component|-unknown |msvcrt Hardware|Other |x86 Ever confirmed|0 |1 Summary|PlanCad L (Version 14.03): |PlanCad-L v14.03 crashes on |crashes when launching the |exit (_seh_longjmp_unwind4 |Programm |must pass jump buffer | |cookie by address) Severity|critical |normal
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello Jens,
I can't reproduce the crash during start. The app runs fine here.
The exception code 0x80000100 is the result from hitting an unimplemented API function. Since you didn't provide terminal output from start of the app, it's not known which function/stub was missing.
It's very likely already fixed/implemented since I don't encounter this and you're using an outdated Wine version. Upgrade to recent 1.7.x series, preferably Wine 1.7.51
I could reproduce a crash on app exit/shutdown though, hence refining this ticket.
--- snip --- $ pwd /home/focht/.wine/drive_c/PlanCAD-L
$ WINEDEBUG=+tid,+seh,+relay,-msvcr110 wine ./PlanCAD.exe >>log.txt 2>&1 ... 0039:Call user32.PostQuitMessage(00000000) ret=0076bf4f 0039:Ret user32.PostQuitMessage() retval=00000000 ret=0076bf4f 0039:Ret window proc 0x77ab40 (hwnd=0x300b0,msg=WM_CLOSE,wp=00000000,lp=00000000) retval=00000000 0039:Ret user32.DefWindowProcW() retval=00000000 ret=0077afd9 0039:Ret window proc 0x77ab40 (hwnd=0x300b0,msg=WM_SYSCOMMAND,wp=0000f060,lp=00000000) retval=00000000 0039:Ret user32.DispatchMessageW() retval=00000000 ret=0076c372 0039:Call user32.GetMessageW(0033e884,00000000,00000000,00000000) ret=0076c381 0039:Ret user32.GetMessageW() retval=00000000 ret=0076c381 0039:Call msvcr110.longjmp(00d4c408,00000000) ret=0076eaf4 0039:trace:seh:MSVCRT_longjmp buf=0xd4c408 ebx=7d7eced8 esi=00000086 edi=0132dcd8 ebp=0033f9d4 esp=0033f958 eip=0076e792 frame=0033f9c4 retval=00000000 0039:trace:seh:MSVCRT_longjmp cur_frame=33f9c4 0039:Call KERNEL32.IsBadReadPtr(00d4c428,00000004) ret=7d7fc030 0039:Ret KERNEL32.IsBadReadPtr() retval=00000000 ret=7d7fc030 0039:Call msvcr110._seh_longjmp_unwind4(00d4c408) ret=7d7fc082 0039:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7d7faf7a ip=7d7faf7a tid=0039 0039:trace:seh:raise_exception info[0]=00000000 0039:trace:seh:raise_exception info[1]=56433230 0039:trace:seh:raise_exception eax=56433230 ebx=0033f9d4 ecx=fffffffe edx=0033f9c4 esi=0033f8c4 edi=0033f894 0039:trace:seh:raise_exception ebp=0033f868 esp=0033f810 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210202 0039:trace:seh:call_stack_handlers calling handler at 0xadbe5b code=c0000005 flags=0 ... Unhandled exception: page fault on read access to 0x56433230 in 32-bit code (0x7d7faf7a). ... Backtrace: =>0 0x7d7faf7a msvcrt_local_unwind4+0x9(cookie=0x56433230, frame=0x33f9c4, trylevel=0xfffffffe, ebp=0x33f9d4) [/home/focht/projects/wine/wine.repo/src/dlls/msvcr110/../msvcrt/except_i386.c:727] in msvcr110 (0x0033f868) 1 0x7d7fc110 _seh_longjmp_unwind4+0x3a(jmp=0xd4c408) [/home/focht/projects/wine/wine.repo/src/dlls/msvcr110/../msvcrt/except_i386.c:1073] in msvcr110 (0x0033f888) 2 0x7bc7efce relay_call+0x39() in ntdll (0x0033f8a8) 3 0x7d7ea69d in msvcr110 (+0xa69c) (0x0033f938) 4 0x7d7fc082 MSVCRT_longjmp+0x1a0(jmp=<couldn't compute location>, retval=<couldn't compute location>) [/home/focht/projects/wine/wine.repo/src/dlls/msvcr110/../msvcrt/except_i386.c:1050] in msvcr110 (0x0033f938) 5 0x7bc7efce relay_call+0x39() in ntdll (0x0033f970) 6 0x7d7ec605 in msvcr110 (+0xc604) (0x0033f9d4) 7 0x0076eaf4 in plancad (+0x36eaf3) (0x0033f9d4) 8 0x0076f241 in plancad (+0x36f240) (0x0033fde4) 9 0x00adc1ac in plancad (+0x6dc1ab) (0x0033fe30) 10 0x7b86e73c call_process_entry+0xb() in kernel32 (0x0033fe48) ... 0x7d7faf7a msvcrt_local_unwind4+0x9 [/home/focht/projects/wine/wine.repo/src/dlls/msvcr110/../msvcrt/except_i386.c:727] in msvcr110: movl 0x0(%eax),%eax 727 const SCOPETABLE_V4 *scopetable = get_scopetable_v4( frame, *cookie ); Modules: Module Address Debug info Name (140 modules) PE 400000- 1100000 Export plancad ELF 7a800000-7a939000 Deferred opengl32<elf> -PE 7a840000-7a939000 \ opengl32 ELF 7b800000-7ba71000 Dwarf kernel32<elf> -PE 7b820000-7ba71000 \ kernel32 ELF 7bc00000-7bd04000 Dwarf ntdll<elf> -PE 7bc20000-7bd04000 \ ntdll ... Threads: process tid prio (all id:s are in hex) ... 00000038 (D) C:\PlanCAD-L\PlanCAD.exe 00000039 0 <== --- snip ---
This seems to be an oversight when passing the jump buffer cookie:
https://source.winehq.org/git/wine.git/blob/36309142d0ed5755a7e6b8c80a973e56...
--- snip --- 1068 /********************************************************************* 1069 * _seh_longjmp_unwind4 (MSVCRT.@) 1070 */ 1071 void __stdcall _seh_longjmp_unwind4(struct MSVCRT___JUMP_BUFFER *jmp) 1072 { 1073 msvcrt_local_unwind4( (void *)jmp->Cookie, (MSVCRT_EXCEPTION_FRAME *)jmp->Registration, 1074 jmp->TryLevel, (void *)jmp->Ebp ); 1075 } --- snip ---
The address of the cookie should be passed to 'msvcrt_local_unwind4', not the value (deref will cause fault).
$ sha1sum dipcad-l_1403.exe 16e1c7b63d775c774e71008b056f515b734ddf48 dipcad-l_1403.exe
$ du -sh dipcad-l_1403.exe 77M dipcad-l_1403.exe
$ wine --version wine-1.7.51-201-g60d1d6f
Regards