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@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]; _______________________________________________ wine-users mailing list wine-users@xxxxxxxxxx http://www.winehq.org/mailman/listinfo/wine-users