Dan Kegel wrote:
An installer made with plain old Installshield 6.
...
Start the installer (SETUP.EXE) with the command $ wine --dll compobj,storage,ole,ole2,ole32,oleaut32,rpcrt4=n SETUP.EXE
OK, I have more data. wine-20030115 works without any DLL overrides; cvs wine requires overrides, otherwise it hangs after a while. This is a regression.
I failed to figure out how to catch this in winedbg. kill -HUP just killed wine; ^C in winedbg just caused winedbg to crash into gdb; walk process printed out the table, then terminated winedbg (!); attach doesn't appear to be a command anymore (the doc is out of date?).
What's the right way to get a stack dump of a hung program in winedbg?
--debugmsg +ole gives some idea where cvs wine hangs. grep shows that it hangs before the second _StubMgrThread message: ole.log:4796:trace:ole:_StubMgrThread Stub Manager Thread starting on (\.\pipe\WINE_OLE_StubMgr_080e15b8) ole.log:4849:trace:ole:_StubMgrThread Stub Manager Thread starting on (\.\pipe\WINE_OLE_StubMgr_08072fb0) olecvs.log:4797:trace:ole:_StubMgrThread Stub Manager Thread starting on (\.\pipe\WINE_OLE_StubMgr_0000000c)
Here's the log:
[4840 or so lines deleted] ... trace:ole:_StubMgrThread Stub Manager Thread starting on (\.\pipe\WINE_OLE_StubMgr_0000000c) warn:ole:create_marshalled_proxy Could not open named pipe to broker \.\pipe{91814EC0-B5F0-11D2-80B9-00104B1F6CEA}, le is 2 warn:ole:create_marshalled_proxy Could not open named pipe to broker \.\pipe{91814EC0-B5F0-11D2-80B9-00104B1F6CEA}, le is 2 trace:ole:CoRegisterClassObject ({22d84ec7-e201-4432-b3ed-a9dca3604594},0x40f20e30,0x00000004,0x00000000,0x483778) trace:ole:DllMain 0x40a20000 0x2 (nil) trace:ole:_LocalServerThread Starting threader for {91814ec0-b5f0-11d2-80b9-00104b1f6cea}. trace:ole:WINE_StringFromCLSID 0x403951d0->{91814EC0-B5F0-11D2-80B9-00104B1F6CEA} trace:ole:CoMarshalInterface (0x40399468, {00000001-0000-0000-c000-000000000046}, 0x40f20f50, 0, (nil), 0) trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x40f20f50,0,(nil),0,0x416f2d80) trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...) trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x416f2d1c trace:ole:WINE_StringFromCLSID 0x40a5d794->{00000001-0000-0000-C000-000000000046} trace:ole:DllMain 0x40a20000 0x2 (nil) trace:ole:_LocalServerThread Starting threader for {22d84ec7-e201-4432-b3ed-a9dca3604594}. trace:ole:WINE_StringFromCLSID 0x40399438->{22D84EC7-E201-4432-B3ED-A9DCA3604594} trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x416f2d1c trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046} trace:ole:WINE_StringFromCLSID 0x416f2d1c->{00000320-0000-0000-C000-000000000046} trace:ole:CoGetClassObject CLSID: {00000320-0000-0000-c000-000000000046}, IID: {d5f569d0-593b-101a-b569-08002b2dbf7a} trace:ole:CoMarshalInterface (0x40399490, {00000001-0000-0000-c000-000000000046}, 0x40f20e30, 0, (nil), 0) trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x40f20e30,0,(nil),0,0x41932d80) trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...) trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x41932d1c trace:ole:WINE_StringFromCLSID 0x40a5d794->{00000001-0000-0000-C000-000000000046} trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x41932d1c trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046} trace:ole:WINE_StringFromCLSID 0x41932d1c->{00000320-0000-0000-C000-000000000046} trace:ole:CoGetClassObject CLSID: {00000320-0000-0000-c000-000000000046}, IID: {d5f569d0-593b-101a-b569-08002b2dbf7a} trace:ole:COMPOBJ_DLLList_Add trace:ole:COMPOBJ_DLLList_Add trace:ole:PSFacBuf_CreateStub ({00000001-0000-0000-c000-000000000046},0x40f20f50,0x416f2d04) trace:ole:PSFacBuf_CreateStub ({00000001-0000-0000-c000-000000000046},0x40f20e30,0x41932d04)
And, so you can get an idea of what would have happened right after that, here's a diff of the working log from wine-20030115 with the broken log from wine-cvs:
... many lines deleted ... 4821c4818,4822 < trace:ole:WINE_StringFromCLSID 0x40a5d754->{00000001-0000-0000-C000-000000000046} ---
trace:ole:CoMarshalInterface (0x40399490, {00000001-0000-0000-c000-000000000046}, 0x40f20e30, 0, (nil), 0) trace:ole:CoGetStandardMarshal ({00000001-0000-0000-c000-000000000046},0x40f20e30,0,(nil),0,0x41932d80) trace:ole:StdMarshalImpl_MarshalInterface (...,{00000001-0000-0000-c000-000000000046},...) trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x41932d1c trace:ole:WINE_StringFromCLSID 0x40a5d794->{00000001-0000-0000-C000-000000000046}
4832,1817960d4832 < trace:ole:CoUnmarshalInterface (0x40396028,{00000001-0000-0000-c000-000000000046},0x40682370) < trace:ole:WINE_StringFromCLSID 0x40681ec4->{0000030B-0000-0000-C000-000000000046} < trace:ole:CoGetClassObject < CLSID: {0000030b-0000-0000-c000-000000000046}, < IID: {00000001-0000-0000-c000-000000000046} < trace:ole:COMPOBJ_DLLList_Add < trace:ole:StdMarshalImpl_UnmarshalInterface (...,{00000001-0000-0000-c000-000000000046},....) < trace:ole:CoGetPSClsid () riid={00000001-0000-0000-c000-000000000046}, pclsid=0x40681e60 < trace:ole:WINE_StringFromCLSID 0x40a13754->{00000001-0000-0000-C000-000000000046} < trace:ole:__CLSIDFromStringA {00000320-0000-0000-C000-000000000046} -> 0x40681e60 < trace:ole:CoGetPSClsid () Returning CLSID={00000320-0000-0000-c000-000000000046} < trace:ole:WINE_StringFromCLSID 0x40681e60->{00000320-0000-0000-C000-000000000046} < trace:ole:CoGetClassObject < CLSID: {00000320-0000-0000-c000-000000000046}, < IID: {d5f569d0-593b-101a-b569-08002b2dbf7a} < trace:ole:COMPOBJ_DLLList_Add < trace:ole:DllMain 0x409d0000 0x2 (nil) < trace:ole:_StubMgrThread Stub Manager Thread starting on (\.\pipe\WINE_OLE_StubMgr_08072fb0) < trace:ole:CFProxy_CreateInstance ((nil),{91814ebf-b5f0-11d2-80b9-00104b1f6cea},0x40682e04) < trace:ole:PipeBuf_GetBuffer (0x4068231c,{00000001-0000-0000-c000-000000000046}), slightly wrong. < trace:ole:PipeBuf_SendReceive () < trace:ole:DllMain 0x40a20000 0x2 (nil) < trace:ole:_StubReaderThread STUB reader thread 80e15b8 < trace:ole:CFStub_Invoke ->CreateInstance({91814ebf-b5f0-11d2-80b9-00104b1f6cea})