http://bugs.winehq.org/show_bug.cgi?id=4506
Summary: Unhandled exception: page fault on read access Product: Wine Version: 0.9.7. Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-x11driver AssignedTo: wine-bugs@winehq.org ReportedBy: mamatkazin@ivc.orw.ru
On some nice old childrens game ("Mango Plumo" work under w98 NT4 w2000 wXP) I got this error:
wine: Unhandled page fault on read access to 0x786d1000 at address 0x7f75f10f (t hread 0009), starting debugger... WineDbg starting on pid 0x8 Unhandled exception: page fault on read access to 0x786d1000 in 32-bit code (0x7 f75f10f). In 32 bit mode. Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:7f75f10f ESP:7fb7ea74 EBP:7fb7ea94 EFLAGS:00010297( - 00 RISAP1C) EAX:786d0ffd EBX:7f7af1cc ECX:73c129f8 EDX:73c12a00 ESI:77ae2908 EDI:6907dffc Stack dump: 0x00000000: 00000000 00000000 00000000 00000000 0x00000010: 00000000 00000000 00000000 00000000 0x00000020: 00000000 00000000 00000000 00000000 0x00000030: 00000000 00000000 00000000 00000000 0x00000040: 00000000 00000000 00000000 00000000 0x00000050: 00000000 00000000 00000000 00000000 Backtrace: =>1 0x7f75f10f convert_888_to_0888_asis(width=0xa, height=0x1e0, srcbits=0x786d0 f82, srclinebytes=0x780, dstbits=0x73c12960, dstlinebytes=0xfffff600) [dib_conve rt.c:833] in winex11 (0x7f75f10f) 2 0x7f7574f5 X11DRV_DIB_SetImageBits_24+0x21d(lines=0x1e0, srcbits=0x785f0702, srcwidth=0x280, dstwidth=0x2a, left=0x256, physDev=0x7fd72ee0, rSrc=0xff0000, g Src=0xff00, bSrc=0xff, bmpImage=0x77ae2908, linebytes=0x780) [dib.c:2595] in win ex11 (0x7f7574f5) 3 0x7f759bbd X11DRV_DIB_SetImageBits+0x4f1(descr=0x7fb7ebcc) [dib.c:3611] in w inex11 (0x7f759bbd) 4 0x7f75ab8a X11DRV_SetDIBitsToDevice(physDev=0x7fd72ee0, xDest=0x256, yDest=0 x0, cx=0x2a, cy=0x3, xSrc=0x256, ySrc=0x0, startscan=0x0, lines=0x1e0, bits=0x78 5f0000, info=0x78b5fec8, coloruse=0x0) [dib.c:3895] in winex11 (0x7f75ab8a) 5 0x7f8bb187 SetDIBitsToDevice+0xa5(hdc=0x3d4, xDest=0x256, yDest=0x0, cx=0x2a , cy=0x3, xSrc=0x256, ySrc=0x1dd, startscan=0x0, lines=0x1e0, bits=0x785f0000, i nfo=0x78b5fec8, coloruse=0x0) [dib.c:371] in gdi32 (0x7f8bb187) 6 0x6903fc06 imIMEGetActiveCompositionWindow+0xe66 in iml32 (0x6903fc06) 7 0x00000000 (0x00000000) 0x7f75f10f convert_888_to_0888_asis+0xf9 [dib_convert.c:833] in winex11: movl 0 x0(%eax),%eax 833 srcval=*srcpixel; Modules: Module Address Debug info Name (117 modules) PE 0x10000000-10021000 Deferred proj PE 0x20000000-2000d000 Deferred mango plumo
Hmm... Last byte from assigned DWORD exiting from address space if start address not DWORD aligned.
After inserting some printf() I got this: oddwidth=(3) x=(1) srcpixel=(787f00fal) oddwidth=(3) x=(2) srcpixel=(787f00fdl) oddwidth=(3) x=(0) srcpixel=(787f0877l) oddwidth=(3) x=(1) srcpixel=(787f087al) oddwidth=(3) x=(2) srcpixel=(787f087dl) oddwidth=(3) x=(0) srcpixel=(787f0ff7l) oddwidth=(3) x=(1) srcpixel=(787f0ffal) oddwidth=(3) x=(2) srcpixel=(787f0ffdl) wine: Unhandled page fault on read access to 0x787f1000 at address 0x7f7e5482 (thread 0009), starting debugger... WineDbg starting on pid 0x8 Unhandled exception: page fault on read access to 0x787f1000 in 32-bit code (0x7f7e5482). In 32 bit mode. Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:7f7e5482 ESP:7fbceacc EBP:7fbceb00 EFLAGS:00010216( - 00 -RIAP1) EAX:787f0ffd EBX:7f82c82c ECX:00000000 EDX:00000028 ESI:0000005f EDI:000001df Stack dump: 0x7fbceacc: 7f81e5e0 00000003 00000002 787f0ffd 0x7fbceadc: 0000005f d6d6d6d6 d6d6d6d6 00000003 0x7fbceaec: 000001df 00000002 756a8a04 787f0ffd 0x7fbceafc: 7f82c82c 7fbceb68 7f7dec73 00000017 0x7fbceb0c: 000001e0 787f0ee3 00000780 756a888c 0x7fbceb1c: fffff600 0012c008 b7ec9820 b7ec8000 Backtrace: =>1 0x7f7e5482 convert_888_to_0888_asis+0x128(width=0x17, height=0x1e0, srcbits=0x787f0ee3, srclinebytes=0x780, dstbits =0x756a888c, dstlinebytes=0xfffff600) [dib_convert.c:836] in winex11 (0x7f7e5482) 2 0x7f7dec73 X11DRV_DIB_SetImageBits_24+0x203(lines=0x1e0, srcbits=0x78710663, srcwidth=0x280, dstwidth=0x5f, left=0x 221, physDev=0x7fd811b0, rSrc=0xff0000, gSrc=0xff00, bSrc=0xff, bmpImage=0x75927ad0, linebytes=0x780) [/home/ftp/src/wi ne-0.9.6/dlls/x11drv/dib.c:2595] in winex11 (0x7f7dec73) 3 0x7f7e0b67 X11DRV_DIB_SetImageBits+0x3d7(descr=0x7fbcebf0) [/home/ftp/src/wine-0.9.6/dlls/x11drv/dib.c:3611] in win ex11 (0x7f7e0b67) 4 0x7f7e173d X11DRV_SetDIBitsToDevice(physDev=0x7fd811b0, xDest=0x221, yDest=0x0, cx=0x5f, cy=0x4e, xSrc=0x221, ySrc= 0x0, startscan=0x0, lines=0x1e0, bits=0x78710000, info=0x78c7fec8, coloruse=0x0) [/home/ftp/src/wine-0.9.6/dlls/x11drv/ dib.c:3897] in winex11 (0x7f7e173d) 5 0x7f932a89 SetDIBitsToDevice(hdc=0x3d4, xDest=0x221, yDest=0x0, cx=0x5f, cy=0x4e, xSrc=0x221, ySrc=0x192, startscan =0x0, lines=0x1e0, bits=0x78710000, info=0x78c7fec8, coloruse=0x0) [dib.c:371] in gdi32 (0x7f932a89) 6 0x6903fc06 imIMEGetActiveCompositionWindow+0xe66 in iml32 (0x6903fc06) 7 0x00000000 (0x00000000) 0x7f7e5482 convert_888_to_0888_asis+0x128 [dib_convert.c:836] in winex11: movl 0x0(%eax),%eax Unable to open file 'dib_convert.c' Modules:
With some ugly hack (change DWORD copy to byte-to-byte and exclude last byte) my childrens can play (with little nois on screen 8-)
Sorry for my english.