Problem report: SHRINKER.ERR, fix to DEVICE_Open/CreateFileA?

Robert Baruch autophile at starband.net
Fri Dec 7 22:33:58 CST 2001


A quick look at running the app under --winver nt40 shows two problems. 
It hits the first problem and wants to display a SHRINKER.ERR dialog box 
saying "Dispatcher initialisation error". However, when wine tries to 
display that message box, it looks like the app spins -- it eats up all 
of the CPU -- when the app calls x11drv.LoadOEMResource. These are the 
last lines of the relay trace:

0806d398:Call window proc 0x40726520 
(hwnd=00010023,msg=WM_GETDLGCODE,wp=00000000,lp=00000000)
0806d398:Ret  window proc 0x40726520 
(hwnd=00010023,msg=WM_GETDLGCODE,wp=00000000,lp=00000000) retval=00000100
0806d398:Call x11drv.CreateWindow(00010024,405047dc,00000001) ret=40752b77
0806d398:Call window proc 0x407050b0 
(hwnd=00010024,msg=WM_NCCREATE,wp=00000000,lp=405047dc)
0806d398:Call x11drv.SetWindowText(00010024,4042f914 L"&OK") ret=40733366
0806d398:Ret  x11drv.SetWindowText() retval=00000001 ret=40733366
0806d398:Ret  window proc 0x407050b0 
(hwnd=00010024,msg=WM_NCCREATE,wp=00000000,lp=405047dc) retval=00000001
0806d398:Call window proc 0x407050b0 
(hwnd=00010024,msg=WM_NCCALCSIZE,wp=00000000,lp=40504488)
0806d398:Ret  window proc 0x407050b0 
(hwnd=00010024,msg=WM_NCCALCSIZE,wp=00000000,lp=40504488) retval=00000300
0806d398:Call window proc 0x407050b0 
(hwnd=00010024,msg=WM_CREATE,wp=00000000,lp=405047dc)
0806d398:Call x11drv.LoadOEMResource(00007ff7,00000001) ret=40731272

Running with +all shows the LoadOEMResource calls results in an 
exception and a spin:

0806d398:trace:resource:LoadImageW (0x0000,0x7ff7,0,0,0,0x00000000)
0806d398:Call x11drv.LoadOEMResource(00007ff7,00000001) ret=40731272
0806d398:trace:heap:HeapAlloc (403b0000,00000002,0000008c): returning 
4042f938
0806d398:trace:seh:EXC_RtlRaiseException code=c0000005 flags=0
0806d398: queue_exception_event( first=1, 
record={context={flags=00000000,eax=40503f3c,ebx=40bbe870,ecx=0805e9b8,edx=40bb4b38,esi=00000000,edi=4042f938,ebp=40501e24,eip=40bb3dfc,esp=404ffdfc,eflags=00010216,cs=0023,ds=002b,es=002b,fs=008f,gs=0000,dr0=00000000,dr1=00000000,dr2=00000000,dr3=00000000,dr6=00000000,dr7=00000000,float={00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000}},rec={code=c0000005,flags=0,rec=(nil),addr=0x40bb3dfc,params={1,404ffdf8}} 
)
0806d398: queue_exception_event() = 0 { handle=0 }
0806d398:trace:seh:EXC_CallHandler calling handler at (nil) 
code=c0000005 flags=0
0806d398:trace:seh:EXC_RtlRaiseException code=c0000005 flags=0
0806d398: queue_exception_event( first=1, 
record={context={flags=405047f0,eax=40504b18,ebx=40110dc4,ecx=40504b58,edx=40504c44,esi=40504bc8,edi=4010dae6,ebp=40504b34,eip=00000000,esp=40504b04,eflags=00010216,cs=0023,ds=002b,es=002b,fs=008f,gs=0000,dr0=40504710,dr1=40070a49,dr2=00000000,dr3=00000000,dr6=0000000c,dr7=00000100,float={40104440,40504794,4039c2e0,40110dc4,403b0cf1,400ed2f4,405047ac,403b0cf1,403b0cf1,40070c36,40110dc4,403b0d12,40772580,405047c8,40110dc4,40070c67,00000002,403b0ce8,0000006f,00000045,403b08e0,40110dc4,0000002a,40772580,00000082,00000020,00000000,00000000}},rec={code=c0000005,flags=0,rec=(nil),addr=(nil),params={0,0}} 
)
0806d398: queue_exception_event() = 0 { handle=0 }
0806d398:trace:seh:EXC_CallHandler calling handler at 0x40070d60 
code=c0000005 flags=0
0806d398:trace:seh:EXC_CallHandler handler returned 2

(and the last two traces repeat ad infinitum)


Running the app under winedbg results in an almost immediate page fault, 
but LoadOEMResource is not in the backtrace! However, it also shows that 
  address 0x40bb3dfc (the reported exception eip) is in libXpm.so.4 (I'm 
running X 4.0.3) :(

--Rob





More information about the wine-users mailing list