Hi,
I'm trying to run a software package for viewing weather data under
wine, but the program crashes with an unhandled exception before I can
even see a window. The program is freely available (for educational and
non-commercial use) here:
http://sdg.ocs.ou.edu/builds/final/win/WeatherScope/WeatherScope-1.2.1.exe
This is running with Wine 20050310. I've included the relevent secions
of a +tid,+seh,+relay log (Filtered using "RelayExclude" =
"RtlEnterCriticalSection;RtlLeaveCriticalSection;_EnterSysLevel;_LeaveSysLevel;
_ConfirmSysLevel;LOCAL_Alloc;LOCAL_Lock;LOCAL_Unlock;LOCAL_Free;GDI_GetObjPtr;
GDI_ReleaseObj;WIN_GetPtr;WIN_FindWndPtr;WIN_ReleaseWndPtr;USER_Unlock")
0009:Call kernel32.MulDiv(0000000a,00000060,00000048) ret=004a6ea6
0009:Ret kernel32.MulDiv() retval=0000000d ret=004a6ea6
0009:Call kernel32.CreateMutexA(00000000,00000000,00000000) ret=004e1bce
0009:Call ntdll.NtCreateMutant(77acfaec,001f0001,77acfaf8,00000000)
ret=77b79d68
0009:Ret ntdll.NtCreateMutant() retval=00000000 ret=77b79d68
0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77b79d73
0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77b79d73
0009:Ret kernel32.CreateMutexA() retval=00000064 ret=004e1bce
0009:Call kernel32.InitializeCriticalSection(0065c120) ret=0052f7a6
0009:Call ntdll.RtlInitializeCriticalSection(0065c120) ret=77b79576
0009:Ret ntdll.RtlInitializeCriticalSection() retval=00000000 ret=77b79576
0009:Ret kernel32.InitializeCriticalSection() retval=00000000 ret=0052f7a6
0009:Call kernel32.CreateMutexA(00000000,00000000,00000000) ret=004e1bce
0009:Call ntdll.NtCreateMutant(77acfaec,001f0001,77acfaf8,00000000)
ret=77b79d68
0009:Ret ntdll.NtCreateMutant() retval=00000000 ret=77b79d68
0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77b79d73
0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77b79d73
0009:Ret kernel32.CreateMutexA() retval=00000068 ret=004e1bce
0009:Call kernel32.CreateMutexA(00000000,00000000,00000000) ret=004e1bce
0009:Call ntdll.NtCreateMutant(77acfaec,001f0001,77acfaf8,00000000)
ret=77b79d68
0009:Ret ntdll.NtCreateMutant() retval=00000000 ret=77b79d68
0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77b79d73
0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77b79d73
0009:Ret kernel32.CreateMutexA() retval=0000006c ret=004e1bce
0009:Call kernel32.GetCommandLineA() ret=004da5fe
0009:Ret kernel32.GetCommandLineA() retval=77c11c40 ret=004da5fe
0009:Call kernel32.GetStartupInfoA(77acfec8) ret=004da619
0009:Ret kernel32.GetStartupInfoA() retval=0000000c ret=004da619
0009:Call kernel32.GetModuleHandleA(00000000) ret=004da642
0009:Ret kernel32.GetModuleHandleA() retval=00400000 ret=004da642
0009:Call kernel32.GetCommandLineW() ret=004086dc
0009:Ret kernel32.GetCommandLineW() retval=77c007a0 ret=004086dc
0009:Call shell32.CommandLineToArgvW(77c007a0
L"\".wine/drive_c/Program
Files/Weathersoft/WeatherScope.exe\"",77acfe5c) ret=004086e3
0009:Call kernel32.GlobalAlloc(00000000,0000007a) ret=76b2ad06
0009:Call ntdll.RtlAllocateHeap(77c00000,00000000,0000007a) ret=77b475ef
0009:Ret ntdll.RtlAllocateHeap() retval=77c47560 ret=77b475ef
0009:Ret kernel32.GlobalAlloc() retval=77c47560 ret=76b2ad06
0009:Call kernel32.GlobalLock(77c47560) ret=76b2ad11
0009:Ret kernel32.GlobalLock() retval=77c47560 ret=76b2ad11
0009:Ret shell32.CommandLineToArgvW() retval=77c47560 ret=004086e3
0009:Call kernel32.GlobalFree(77c47560) ret=0040873b
0009:Call ntdll.RtlLockHeap(77c00000) ret=77b47ef4
0009:Ret ntdll.RtlLockHeap() retval=00000001 ret=77b47ef4
0009:Call ntdll.RtlFreeHeap(77c00000,00000000,77c47560) ret=77b47628
0009:Ret ntdll.RtlFreeHeap() retval=00000001 ret=77b47628
0009:Call ntdll.RtlUnlockHeap(77c00000) ret=77b47f73
0009:Ret ntdll.RtlUnlockHeap() retval=00000001 ret=77b47f73
0009:Ret kernel32.GlobalFree() retval=00000000 ret=0040873b
0009:Call kernel32.CreateMutexA(00000000,00000000,005bbcf0
"WeatherScope") ret=00407f8d
0009:Call ntdll.RtlInitUnicodeString(77acfa4c,77acfa9c
L"WeatherScope")
ret=77b79d40
0009:Ret ntdll.RtlInitUnicodeString() retval=0000001a ret=77b79d40
0009:Call ntdll.NtCreateMutant(77acfa48,001f0001,77acfa54,00000000)
ret=77b79d68
0009:Ret ntdll.NtCreateMutant() retval=00000000 ret=77b79d68
0009:Call ntdll.RtlNtStatusToDosError(00000000) ret=77b79d73
0009:Ret ntdll.RtlNtStatusToDosError() retval=00000000 ret=77b79d73
0009:Ret kernel32.CreateMutexA() retval=00000070 ret=00407f8d
0009:Call kernel32.GetLastError() ret=00407f9c
0009:Ret kernel32.GetLastError() retval=00000000 ret=00407f9c
0009:Call kernel32.GetCommandLineA() ret=00408529
0009:Ret kernel32.GetCommandLineA() retval=77c11c40 ret=00408529
0009:trace:seh:EXC_RtlRaiseException code=c0000005 flags=0 addr=0x4e0f66
0009:trace:seh:EXC_RtlRaiseException info[0]=00000000
0009:trace:seh:EXC_RtlRaiseException info[1]=0000f450
0009:trace:seh:EXC_RtlRaiseException eax=0065b5c0 ebx=77be7a01
ecx=00000001 edx=0000f448 esi=77eff860 edi=004da570
0009:trace:seh:EXC_RtlRaiseException ebp=77acfd0c esp=77acfd04 cs=0073
ds=007b es=007b fs=003b gs=0033 flags=00010202
0009:trace:seh:EXC_CallHandler calling handler at 0x513230 code=c0000005
flags=0
0009:trace:seh:EXC_CallHandler handler returned 1
0009:trace:seh:EXC_CallHandler calling handler at 0x512fd0 code=c0000005
flags=0
0009:Call kernel32.TlsGetValue(00000002) ret=0050a2fa
0009:Ret kernel32.TlsGetValue() retval=77c491e8 ret=0050a2fa
0009:Call kernel32.TlsGetValue(00000002) ret=0050a2fa
0009:Ret kernel32.TlsGetValue() retval=77c491e8 ret=0050a2fa
0009:trace:seh:EXC_CallHandler handler returned 1
0009:trace:seh:EXC_CallHandler calling handler at 0x77b22e98
code=c0000005 flags=0
0009:Call
ntdll.NtCreateEvent(77acf844,001f0003,77acf848,00000001,00000000)
ret=77b3def8
0009:Ret ntdll.NtCreateEvent() retval=00000000 ret=77b3def8
And debugger output:
wine: Unhandled exception (thread 0009), starting debugger...
WineDbg starting on pid 0x8
Unhandled exception: page fault on read access to 0x0000f450 in 32-bit
code (0x004e0f66).
In 32 bit mode.
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
EIP:004e0f66 ESP:77acfd04 EBP:77acfd0c EFLAGS:00010202( - 00 -
-RI1)
EAX:0065b5c0 EBX:77be7a01 ECX:00000001 EDX:0000f448
ESI:77eff860 EDI:004da570
Stack dump:
0x77acfd04: cccccccc 0065b5c0 77acfd1c 004e12a9
0x77acfd14: 0065b5c0 77c4f508 77acfd40 0044fb11
0x77acfd24: 77c4f508 cccccccc cccccccc cccccccc
0x77acfd34: cccccccc cccccccc cccccccc 77acfd4c
0x77acfd44: 004858ab 77c4f508 77acfd5c 00439cc3
0x77acfd54: 77c4f508 77acfda8 77acfd7c 0043a51a
Backtrace:
=>1 0x004e0f66 in weatherscope (+0xe0f66) (0x77acfd0c)
2 0x004e12a9 in weatherscope (+0xe12a9) (0x77acfd1c)
3 0x0044fb11 in weatherscope (+0x4fb11) (0x77acfd40)
4 0x004858ab in weatherscope (+0x858ab) (0x77acfd4c)
5 0x00439cc3 in weatherscope (+0x39cc3) (0x77acfd5c)
6 0x0043a51a in weatherscope (+0x3a51a) (0x77acfd7c)
7 0x00408584 in weatherscope (+0x8584) (0x77acfdb4)
8 0x00408782 in weatherscope (+0x8782) (0x77acfe68)
9 0x004da648 EntryPoint+0xd8 in weatherscope (0x77acff20)
10 0x77b66907 in kernel32 (+0x56907) (0x77acfff4)
11 0xb7fc1c9d wine_switch_to_stack+0x11 in libwine.so.1 (0x00000000)
0x004e0f66: movl 0x8(%edx),%edx
WineDbg terminated on pid 0x8
My best interpretation here is that there appears to be a problem with
the program accessing the command line, but I'm really just taking a
wild guess. Anyone have any ideas?
Thanks,
Ryan
--
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma