[Wine] Wine unhandled exception running PocketFMS

Rob Turk wipe_this_r.turk at chello.nl
Mon Mar 19 00:52:20 CDT 2007


I'm trying to get the PocketFMS flight assistant program to work under Wine. 
This program is available for free at www.pocketfms.com .

The installation of PocketFMS works OK with a few 'fixme' warnings, but 
running the installed program causes an immediate crash. As this program is 
still in development itself and not designed to run on anything but Windows, 
I'd like to know if the information below points to a bug in Wine, or a bug 
in PocketFMS. The host is Slackware 11 with a 2.6.19.1 Linux kernel, and 
Wine is 0.9.28 compiled from source.

At the bottom there's information generated with WINEDEBUG=+relay set. It 
appears something is wrong with a call to gdi32.StretchDIBits() but I'm not 
enough into Wine debugging to confirm this.

All comments are welcome..

Thanks,
Rob

==============>8===========================
root at slack11:~# wine "c:\program files\pocketfms\pocketfms.exe"
wine: Unhandled page fault on read access to 0x0465bf70 at address 
0x7e4ec030 (thread 0009), starting debugger...
Unhandled exception: page fault on read access to 0x0465bf70 in 32-bit code 
(0x7e4ec030).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:7e4ec030 ESP:0034ed74 EBP:0034ed90 EFLAGS:00210297(   - 00     RISAP1C)
 EAX:7c06d1f8 EBX:7e53655c ECX:0000001a EDX:00000034
 ESI:0465bf70 EDI:00000000
Stack dump:
0x0034ed74:  00000000 00000034 00000000 00000000
0x0034ed84:  7c06d1f8 000000d0 0465bf70 0034efb0
0x0034ed94:  7e4e513b 000000d0 0000001a 0465bf70
0x0034eda4:  00000270 7c06d1f8 fffffcc0 0034efb0
0x0034edb4:  7e4e2f4e 7e9ef960 0000ffff 0000005c
0x0034edc4:  7e4f7f1d 0019f8e8 7e9e7c88 fffffcc0
Backtrace:
=>1 0x7e4ec030 convert_888_to_0888_asis+0xc0(width=0x7c06d1f8, height=0x1a, 
srcbits=0x465bf70, srclinebytes=0x270, dstbits=0x7c06d1f8, 
dstlinebytes=0xfffffcc0) 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib_convert.c:852] in winex11 
(0x0034ed90)
  2 0x7e4e513b X11DRV_DIB_SetImageBits+0x221b(descr=0x34f008) 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib.c:2543] in winex11 (0x0034efb0)
  3 0x7e4e9ea3 X11DRV_SetDIBits+0x1e3(physDev=<register EAX not in topmost 
frame>, hbitmap=0x558, startscan=0x0, lines=<register ESI not in topmost 
frame>, bits=<register EAX not in topmost frame>, info=0xaf5ce8, 
coloruse=<register EDX not in topmost frame>) 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib.c:3931] in winex11 (0x0034f080)
fixme:dbghelp_dwarf:dwarf2_parse_variable Unsupported constant size in 
function
  4 0x7e9a653f SetDIBits+0x11f(hdc=0x54c, hbitmap=0x558, startscan=0x0, 
lines=0x1a, bits=0x465bf70, info=0xaf5ce8, coloruse=0x0) 
[/usr/src/wine-0.9.28/dlls/gdi32/dib.c:344] in gdi32 (0x0034f0c0)
  5 0x7e9a66e4 StretchDIBits+0x184(hdc=<register EDI not in topmost frame>, 
xDst=0x0, yDst=0x0, widthDst=0xd0, heightDst=0x1a, xSrc=0x0, ySrc=0x0, 
widthSrc=0xd0, heightSrc=0x1a, bits=0x465bf70, info=<register ESI not in 
topmost frame>, wUsage=0x0, dwRop=0xcc0020) 
[/usr/src/wine-0.9.28/dlls/gdi32/dib.c:290] in gdi32 (0x0034f120)
  6 0x0053eafd in pocketfms (+0x13eafd) (0x0034f178)
  7 0x0054b8cf in pocketfms (+0x14b8cf) (0x0034f1b4)
  8 0x00455621 in pocketfms (+0x55621) (0x0034f1ac)
  9 0x00af2504 (0x00661428)
  10 0x0008001a (0x001a0001)
0x7e4ec030 convert_888_to_0888_asis+0xc0 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib_convert.c:852] in winex11: movl 
0x0(%esi),%ecx
852                 srcval1=srcpixel[0];
Modules:
Module  Address                 Debug info      Name (91 modules)
PE      400000-6b8000   Export          pocketfms
PE      10000000-10066000       Deferred        zipdll
PE      21300000-21312000       Deferred        rapi
PE      22b00000-22b0b000       Deferred        ceutil
ELF     7bf00000-7bf03000       Deferred        <wine-loader>
ELF     7e081000-7e096000       Deferred        midimap<elf>
  \-PE  7e090000-7e096000       \               midimap
ELF     7e0bb000-7e0f6000       Deferred        wineoss<elf>
  \-PE  7e0c0000-7e0f6000       \               wineoss
ELF     7e0f6000-7e22f000       Deferred        libcrypto.so.0
ELF     7e22f000-7e26d000       Deferred        libssl.so.0
ELF     7e26d000-7e289000       Deferred        libcups.so.2
ELF     7e28b000-7e2a3000       Deferred        msacm32<elf>
  \-PE  7e290000-7e2a3000       \               msacm32
ELF     7e2c3000-7e2f4000       Deferred        uxtheme<elf>
  \-PE  7e2d0000-7e2f4000       \               uxtheme
ELF     7e2f4000-7e2f9000       Deferred        libxfixes.so.3
ELF     7e2f9000-7e302000       Deferred        libxcursor.so.1
ELF     7e31c000-7e338000       Deferred        imm32<elf>
  \-PE  7e320000-7e338000       \               imm32
ELF     7e338000-7e356000       Deferred        ximcp.so.2
ELF     7e356000-7e3bd000       Deferred        libgl.so.1
ELF     7e3bd000-7e48a000       Deferred        libx11.so.6
ELF     7e48a000-7e498000       Deferred        libxext.so.6
ELF     7e498000-7e4b0000       Deferred        libice.so.6
ELF     7e4b0000-7e4b9000       Deferred        libsm.so.6
ELF     7e4b9000-7e53f000       Dwarf           winex11<elf>
  \-PE  7e4d0000-7e53f000       \               winex11
ELF     7e53f000-7e551000       Deferred        libz.so.1
ELF     7e551000-7e5bb000       Deferred        libfreetype.so.6
ELF     7e5bd000-7e5c1000       Deferred        iso8859-1.so
ELF     7e5c2000-7e5c5000       Deferred        xlcdef.so.2
ELF     7e5c5000-7e5c9000       Deferred        libxrandr.so.2
ELF     7e5c9000-7e5d2000       Deferred        libxrender.so.1
ELF     7e5d2000-7e5d5000       Deferred        libxinerama.so.1
ELF     7e5d5000-7e5f4000       Deferred        mpr<elf>
  \-PE  7e5e0000-7e5f4000       \               mpr
ELF     7e5f4000-7e637000       Deferred        wininet<elf>
  \-PE  7e600000-7e637000       \               wininet
ELF     7e637000-7e6c8000       Deferred        oleaut32<elf>
  \-PE  7e650000-7e6c8000       \               oleaut32
ELF     7e6c8000-7e6e9000       Deferred        oledlg<elf>
  \-PE  7e6d0000-7e6e9000       \               oledlg
ELF     7e6e9000-7e773000       Deferred        winmm<elf>
  \-PE  7e6f0000-7e773000       \               winmm
ELF     7e773000-7e787000       Deferred        msimg32<elf>
  \-PE  7e780000-7e787000       \               msimg32
ELF     7e787000-7e7e8000       Deferred        msvcrt<elf>
  \-PE  7e7a0000-7e7e8000       \               msvcrt
ELF     7e7e8000-7e813000       Deferred        ws2_32<elf>
  \-PE  7e7f0000-7e813000       \               ws2_32
ELF     7e813000-7e841000       Deferred        winspool<elf>
  \-PE  7e820000-7e841000       \               winspool
ELF     7e841000-7e8f3000       Deferred        comctl32<elf>
  \-PE  7e850000-7e8f3000       \               comctl32
ELF     7e8f3000-7e907000       Deferred        libresolv.so.2
ELF     7e907000-7e924000       Deferred        iphlpapi<elf>
  \-PE  7e910000-7e924000       \               iphlpapi
ELF     7e924000-7e975000       Deferred        rpcrt4<elf>
  \-PE  7e930000-7e975000       \               rpcrt4
ELF     7e975000-7ea00000       Dwarf           gdi32<elf>
  \-PE  7e990000-7ea00000       \               gdi32
ELF     7ea00000-7eb28000       Deferred        user32<elf>
  \-PE  7ea20000-7eb28000       \               user32
ELF     7eb28000-7eb69000       Deferred        advapi32<elf>
  \-PE  7eb30000-7eb69000       \               advapi32
ELF     7eb69000-7ebf8000       Deferred        ole32<elf>
  \-PE  7eb80000-7ebf8000       \               ole32
ELF     7ebf8000-7ec4c000       Deferred        shlwapi<elf>
  \-PE  7ec10000-7ec4c000       \               shlwapi
ELF     7ec4c000-7ed35000       Deferred        shell32<elf>
  \-PE  7ec60000-7ed35000       \               shell32
ELF     7ed35000-7edcf000       Deferred        comdlg32<elf>
  \-PE  7ed40000-7edcf000       \               comdlg32
ELF     7edfb000-7ef0e000       Deferred        kernel32<elf>
  \-PE  7ee10000-7ef0e000       \               kernel32
ELF     7ef0e000-7ef19000       Deferred        libnss_files.so.2
ELF     7ef19000-7ef23000       Deferred        libnss_nis.so.2
ELF     7ef23000-7ef39000       Deferred        libnsl.so.1
ELF     7ef39000-7ef43000       Deferred        libnss_compat.so.2
ELF     7ef43000-7ef66000       Deferred        libm.so.6
ELF     7ef66000-7ef80000       Deferred        wsock32<elf>
  \-PE  7ef70000-7ef80000       \               wsock32
ELF     7ef80000-7f000000       Deferred        ntdll<elf>
  \-PE  7ef90000-7f000000       \               ntdll
ELF     b7cf0000-b7cf5000       Deferred        libxxf86vm.so.1
ELF     b7cf6000-b7cfa000       Deferred        libdl.so.2
ELF     b7cfa000-b7e29000       Deferred        libc.so.6
ELF     b7e29000-b7e3b000       Deferred        libpthread.so.0
ELF     b7e56000-b7f67000       Deferred        libwine.so.1
ELF     b7f67000-b7f7f000       Deferred        ld-linux.so.2
Threads:
process  tid      prio (all id:s are in hex)
0000000a
        0000000b    0
00000008 (D) C:\program files\pocketfms\pocketfms.exe
        00000009    0 <==

===============>8========== with WINEDEBUG=+relay ==============

0009:Ret  user32.SetRect() retval=00000001 ret=7e8b4151
0009:Call user32.SetRect(001b59ac,000000e7,00000000,00000108,00000021) 
ret=7e8b4151
0009:Ret  user32.SetRect() retval=00000001 ret=7e8b4151
0009:Ret  window proc 0x7e8bb920 
(hwnd=0x10036,msg=WM_USER+31,wp=00000000,lp=00210021) retval=00000001
0009:Ret  user32.CallWindowProcA() retval=00000001 ret=0053011e
0009:Call user32.SetWindowLongA(00010036,fffffff0,5400084e) ret=0053f47c
0009:Call window proc 0x532222 
(hwnd=0x10036,msg=WM_STYLECHANGING,wp=fffffff0,lp=0034eaa8)
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call 
user32.CallWindowProcA(ffff0015,00010036,0000007c,fffffff0,0034eaa8) 
ret=0053011e
0009:Call window proc 0x7e8bb920 
(hwnd=0x10036,msg=WM_STYLECHANGING,wp=fffffff0,lp=0034eaa8)
0009:Call user32.GetWindowLongW(00010036,00000000) ret=7e8bb943
0009:Ret  user32.GetWindowLongW() retval=001b56e8 ret=7e8bb943
0009:Call user32.DefWindowProcW(00010036,0000007c,fffffff0,0034eaa8) 
ret=7e8bbf1c
0009:Ret  user32.DefWindowProcW() retval=00000000 ret=7e8bbf1c
0009:Ret  window proc 0x7e8bb920 
(hwnd=0x10036,msg=WM_STYLECHANGING,wp=fffffff0,lp=0034eaa8) retval=00000000
0009:Ret  user32.CallWindowProcA() retval=00000000 ret=0053011e
0009:Ret  window proc 0x532222 
(hwnd=0x10036,msg=WM_STYLECHANGING,wp=fffffff0,lp=0034eaa8) retval=00000000
0009:Call winex11.drv.SetWindowStyle(00010036,5400884e) ret=7eaa8d1a
0009:Ret  winex11.drv.SetWindowStyle() retval=00008000 ret=7eaa8d1a
0009:Call window proc 0x532222 
(hwnd=0x10036,msg=WM_STYLECHANGED,wp=fffffff0,lp=0034eaa8)
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call 
user32.CallWindowProcA(ffff0015,00010036,0000007d,fffffff0,0034eaa8) 
ret=0053011e
0009:Call window proc 0x7e8bb920 
(hwnd=0x10036,msg=WM_STYLECHANGED,wp=fffffff0,lp=0034eaa8)
0009:Call user32.GetWindowLongW(00010036,00000000) ret=7e8bb943
0009:Ret  user32.GetWindowLongW() retval=001b56e8 ret=7e8bb943
0009:Call user32.GetWindowLongW(00010036,00000000) ret=7e8b7bb2
0009:Ret  user32.GetWindowLongW() retval=001b56e8 ret=7e8b7bb2
0009:Ret  window proc 0x7e8bb920 
(hwnd=0x10036,msg=WM_STYLECHANGED,wp=fffffff0,lp=0034eaa8) retval=00000000
0009:Ret  user32.CallWindowProcA() retval=00000000 ret=0053011e
0009:Ret  window proc 0x532222 
(hwnd=0x10036,msg=WM_STYLECHANGED,wp=fffffff0,lp=0034eaa8) retval=00000000
0009:Ret  user32.SetWindowLongA() retval=5400884e ret=0053f47c
0009:Ret  window proc 0x532222 
(hwnd=0x10036,msg=WM_USER+31,wp=00000000,lp=00210021) retval=00000001
0009:Ret  user32.SendMessageA() retval=00000001 ret=0054b86d
0009:Call user32.InvalidateRect(00010036,00000000,00000001) ret=0054b87a
0009:Ret  user32.InvalidateRect() retval=00000001 ret=0054b87a
0009:Call kernel32.TlsGetValue(00000007) ret=0054cb70
0009:Ret  kernel32.TlsGetValue() retval=001ad120 ret=0054cb70
0009:Call kernel32.FindResourceA(00400000,00000105,00000002) ret=0054b8c0
0009:Ret  kernel32.FindResourceA() retval=005c4aa0 ret=0054b8c0
0009:Call kernel32.LoadResource(00400000,005c4aa0) ret=0053e9ba
0009:Ret  kernel32.LoadResource() retval=0065bf48 ret=0053e9ba
0009:Call kernel32.LockResource(0065bf48) ret=0053e9cf
0009:Ret  kernel32.LockResource() retval=0065bf48 ret=0053e9cf
0009:Call ntdll.RtlAllocateHeap(00af0000,00000000,00000068) ret=00518b02
0009:Ret  ntdll.RtlAllocateHeap() retval=00af5cf8 ret=00518b02
0009:Call user32.GetDC(00000000) ret=0053eaa0
0009:Call winex11.drv.GetDCEx(00010020,00000000,00000003) ret=7ea8f91e
0009:Ret  winex11.drv.GetDCEx() retval=0000035c ret=7ea8f91e
0009:Ret  user32.GetDC() retval=0000035c ret=0053eaa0
0009:Call gdi32.CreateCompatibleBitmap(0000035c,000000d0,0000001a) 
ret=0053eaac
0009:Ret  gdi32.CreateCompatibleBitmap() retval=0000053c ret=0053eaac
0009:Call gdi32.CreateCompatibleDC(0000035c) ret=0053eabc
0009:Ret  gdi32.CreateCompatibleDC() retval=00000540 ret=0053eabc
0009:Call gdi32.SelectObject(00000540,0000053c) ret=0053eaca
0009:Ret  gdi32.SelectObject() retval=0000006c ret=0053eaca
0009:Call 
gdi32.StretchDIBits(00000540,00000000,00000000,000000d0,0000001a,00000000,00000000,000000d0,0000001a,0465bf70,00af5cf8,00000000,00cc0020) 
ret=0053eafd
0009:Call kernel32.GetLastError() ret=0051fc72
0009:Ret  kernel32.GetLastError() retval=00000000 ret=0051fc72
0009:Call kernel32.TlsGetValue(00000006) ret=0051fc80
0009:Ret  kernel32.TlsGetValue() retval=00af00f8 ret=0051fc80
0009:Call kernel32.SetLastError(00000000) ret=0051fcd6
0009:Ret  kernel32.SetLastError() retval=00000000 ret=0051fcd6
0009:Call kernel32.GetLastError() ret=0051fc72
0009:Ret  kernel32.GetLastError() retval=00000000 ret=0051fc72
0009:Call kernel32.TlsGetValue(00000006) ret=0051fc80
0009:Ret  kernel32.TlsGetValue() retval=00af00f8 ret=0051fc80
0009:Call kernel32.SetLastError(00000000) ret=0051fcd6
0009:Ret  kernel32.SetLastError() retval=00000000 ret=0051fcd6
0009:Call kernel32.UnhandledExceptionFilter(0034e6b0) ret=00526afd
0009:Call kernel32.IsBadCodePtr(7e7ace30) ret=005290cb
0009:Ret  kernel32.IsBadCodePtr() retval=00000000 ret=005290cb
wine: Unhandled page fault on read access to 0x0465bf70 at address 
0x7e4ec030 (thread 0009), starting debugger...
0009:Ret  kernel32.UnhandledExceptionFilter() retval=00000000 ret=00526afd
Unhandled exception: page fault on read access to 0x0465bf70 in 32-bit code 
(0x7e4ec030).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:7e4ec030 ESP:0034eb3c EBP:0034eb58 EFLAGS:00210297(   - 00     RISAP1C)
 EAX:7c06d1e8 EBX:7e53655c ECX:0000001a EDX:00000034
 ESI:0465bf70 EDI:00000000
Stack dump:
0x0034eb3c:  00000000 00000034 00000000 00000000
0x0034eb4c:  7c06d1e8 000000d0 0465bf70 0034ed78
0x0034eb5c:  7e4e513b 000000d0 0000001a 0465bf70
0x0034eb6c:  00000270 7c06d1e8 fffffcc0 0034ed78
0x0034eb7c:  7e4e2f4e 7e9ef960 0000ffff 0000005c
0x0034eb8c:  7e4f7f1d 001b5e50 7e9e7c88 fffffcc0
Backtrace:
=>1 0x7e4ec030 convert_888_to_0888_asis+0xc0(width=0x7c06d1e8, height=0x1a, 
srcbits=0x465bf70, srclinebytes=0x270, dstbits=0x7c06d1e8, 
dstlinebytes=0xfffffcc0) 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib_convert.c:852] in winex11 
(0x0034eb58)
  2 0x7e4e513b X11DRV_DIB_SetImageBits+0x221b(descr=0x34edd0) 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib.c:2543] in winex11 (0x0034ed78)
  3 0x7e4e9ea3 X11DRV_SetDIBits+0x1e3(physDev=<register EAX not in topmost 
frame>, hbitmap=0x558, startscan=0x0, lines=<register ESI not in topmost 
frame>, bits=<register EAX not in topmost frame>, info=0xaf5cf8, 
coloruse=<register EDX not in topmost frame>) 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib.c:3931] in winex11 (0x0034ee48)
fixme:dbghelp_dwarf:dwarf2_parse_variable Unsupported constant size in 
function
  4 0x7e9a653f SetDIBits+0x11f(hdc=0x54c, hbitmap=0x558, startscan=0x0, 
lines=0x1a, bits=0x465bf70, info=0xaf5cf8, coloruse=0x0) 
[/usr/src/wine-0.9.28/dlls/gdi32/dib.c:344] in gdi32 (0x0034ee88)
  5 0x7e9a66e4 StretchDIBits+0x184(hdc=<register EDI not in topmost frame>, 
xDst=0x0, yDst=0x0, widthDst=0xd0, heightDst=0x1a, xSrc=0x0, ySrc=0x0, 
widthSrc=0xd0, heightSrc=0x1a, bits=0x465bf70, info=<register ESI not in 
topmost frame>, wUsage=0x0, dwRop=0xcc0020) 
[/usr/src/wine-0.9.28/dlls/gdi32/dib.c:290] in gdi32 (0x0034eee8)
  6 0x7efc5410 call_entry_point+0x20() in ntdll (0x0034ef38)
  7 0x7efc603d relay_call_from_32+0x1bd(descr=0x7e9eaad0, idx=<register EAX 
not in topmost frame>, stack=0x34efbc) 
[/usr/src/wine-0.9.28/dlls/ntdll/relay.c:390] in ntdll (0x0034efa8)
  8 0x7e995789 in gdi32 (+0x5789) (0x0034f010)
  9 0x0054b8cf in pocketfms (+0x14b8cf) (0x0034f04c)
  10 0x00455621 in pocketfms (+0x55621) (0x0034f044)
  11 0x00af2514 (0x00661428)
  12 0x0008001a (0x001a0001)
  13 0x780000ee (0x01900000)
  14 0x00000000 (0x00000000)
0x7e4ec030 convert_888_to_0888_asis+0xc0 
[/usr/src/wine-0.9.28/dlls/winex11.drv/dib_convert.c:852] in winex11: movl 
0x0(%esi),%ecx
852                 srcval1=srcpixel[0];




More information about the wine-users mailing list