[Bug 39356] PlanCad-L v14.03 crashes on exit (_seh_longjmp_unwind4 must pass jump buffer cookie by address)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Oct 2 16:13:51 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=39356

--- Comment #4 from Jens Hartwig <jehartwig at googlemail.com> ---
(In reply to Jens Hartwig from comment #3)
> (In reply to Anastasius Focht from comment #2)
> > 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.

Many Thanks for your answer. I ugraded on wine 1.7.5 but it did not solve the
problem. Which log-file would be useful for you? I could start the app on my
system and send you one of my log-files.

Greetings, Jens


> > 
> > 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/
> > 36309142d0ed5755a7e6b8c80a973e56c88320d2:/dlls/msvcrt/except_i386.c#l1071
> > 
> > --- 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
> 
> (In reply to Jens Hartwig from comment #0)
> > Created attachment 52449 [details]
> > ?
> > 
> > version: wine-1.6.1
> > PlanCad L (Version 14.03, 32-Bit-version): crashes when launching the
> > Programm. It shows error message: Unexpected Exception Code: 80000100 
> > download-link for PlanCad L (Version 14.03,
> > 32-Bit-version):http://user.dietrichs.com/downloads/get=146/mirror=199.html
> > 
> >  Mirror Location 	 Filename 	  File Size 	 MD5 Sum
> > user.dietrichs.com 	dipcad-l_1403.exe Report broken 	76.55 MB 
> > f4c8b56972ab7b56392b9be3b9b1ca35
> > 
> > system:
> > Intel® Pentium(R) M processor 2.00GHz , 32-bit-version

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list