Howdy,
This patch: http://www.winehq.org/hypermail/wine-cvs/2004/05/0283.html
causes a crash within Actel Designer (commercial FPGA design software). Reverting the patch with current CVS fixes the application.
A trace and crash dump look like
wine /c/Actel/bin/designer.exe
trace:ole:DllMain 0x40ea0000 0x1 0x1 trace:ole:DllMain (0x41030000,1,0x1) trace:ole:OleInitialize ((nil)) trace:ole:CoInitializeEx ((nil), 2) trace:ole:CoInitializeEx () - Initializing the COM libraries trace:ole:RunningObjectTableImpl_Initialize () trace:ole:OleInitialize () - Initializing the OLE libraries trace:ole:OLEClipbrd_Initialize () fixme:ole:CoRegisterMessageFilter stub trace:ole:RegisterDragDrop (0x10040,0x41fc1ddc) trace:ole:UuidCreate {8b881308-d111-11d8-8790-002078041c53} trace:ole:__CLSIDFromStringA {A111826C-DB40-11d2-8D34-0008C7523E29} -> 0x4073f218 trace:ole:WINE_StringFromCLSID 0x4073f218->{A111826C-DB40-11D2-8D34-0008C7523E29} trace:ole:CoLoadLibrary (L"C:\Actel/bin/comdesign.dll", 0) trace:ole:CoCreateFreeThreadedMarshaler (0x41fc6a60 0x41fc6a74) trace:ole:__CLSIDFromStringA {4B95E7E3-6EC5-11D2-BA21-0008C7A01E5D} -> 0x4073f870 trace:ole:WINE_StringFromCLSID 0x4073f870->{4B95E7E3-6EC5-11D2-BA21-0008C7A01E5D} trace:ole:CoLoadLibrary (L"C:\Actel/bin/timingui.dll", 0) trace:ole:__CLSIDFromStringA {F70AA652-C79A-11d2-BA4B-0008C7A01E5D} -> 0x4073f66c trace:ole:WINE_StringFromCLSID 0x4073f66c->{F70AA652-C79A-11D2-BA4B-0008C7A01E5D} trace:ole:CoLoadLibrary (L"C:\Actel/bin/taiming.dll", 0) err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0 err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0 err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0 err:toolbar:TOOLBAR_GetImageListForDrawing bitmap for ID 0, index 0 is not valid, number of bitmaps in imagelist: 0 trace:ole:CoMarshalInterThreadInterfaceInStream ({27a4f276-6452-11d2-ba1d-0008c7a01e5d}, 0x43932bf8, 0x4073f9e8) trace:ole:CoMarshalInterface (0x402b4180, {27a4f276-6452-11d2-ba1d-0008c7a01e5d}, 0x43932bf8, 3, (nil), 0) trace:ole:_StubMgrThread Stub Manager Thread starting on (\.\pipe\WINE_OLE_StubMgr_00000008) trace:ole:CoCreateFreeThreadedMarshaler (0x41fc72f0 0x41fc7348) trace:ole:IiFTMUnknown_fnQueryInterface trace:ole:FTMarshalImpl_AddRef fixme:ole:FTMarshalImpl_GetUnmarshalClass (), stub! fixme:ole:FTMarshalImpl_MarshalInterface (), stub! trace:ole:FTMarshalImpl_Release trace:ole:CoInitializeEx ((nil), 2) trace:ole:CoGetInterfaceAndReleaseStream (0x402b4180, {27a4f276-6452-11d2-ba1d-0008c7a01e5d}, 0x46cb413c) trace:ole:CoUnmarshalInterface (0x402b4180,{27a4f276-6452-11d2-ba1d-0008c7a01e5d},0x46cb413c) trace:ole:WINE_StringFromCLSID 0x46cb4014->{402B4180-FA0C-40EE-EBF8-EE40F0CE5360} trace:ole:CoGetClassObject CLSID: {402b4180-fa0c-40ee-ebf8-ee40f0ce5360}, IID: {00000001-0000-0000-c000-000000000046} warn:ole:CoGetClassObject class {402B4180-FA0C-40EE-EBF8-EE40F0CE5360} not registred trace:ole:WINE_StringFromCLSID 0x46cb4014->{402B4180-FA0C-40EE-EBF8-EE40F0CE5360} trace:ole:WINE_StringFromCLSID 0x46cb4014->{402B4180-FA0C-40EE-EBF8-EE40F0CE5360} fixme:ole:CoCreateInstance no classfactory created for CLSID {402b4180-fa0c-40ee-ebf8-ee40f0ce5360}, hres is 0x80040150 fixme:ole:CoUnmarshalInterface Failed to create instance of unmarshaller {402b4180-fa0c-40ee-ebf8-ee40f0ce5360}. wine: Unhandled exception (thread 000d), starting debugger... fixme:console:SetConsoleCtrlHandler (0x4066a5e0,1) - no error checking or testing yet WineDbg starting on pid 0x8 Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x6051b58f). In 32 bit mode. err:dbghelp_msc:pdb_process_file -Unable to peruse .PDB file e:\users\ChiJ\objs\pc_4.0.3.5\timingui\msobj\timingui.pdb 0x6051b58f: movl 0x0(%eax),%ecx Wine-dbg>bt Backtrace: =>1 0x6051b58f (0x46cb4160) 2 0x40374e57 THREAD_Start+0xef(ptr=0x402b3dd8) [thread.c:107] in kernel32 (0x46cb4234) 3 0x400a2f23 start_thread+0x147(info=0x402b05e0) [thread.c:199] in ntdll (0x46cb4a70) 4 0x40043484 start_thread+0x64 in libpthread.so.0 (0x46cb4a94) 5 0x420df147 __clone+0x57 in libc.so.6 (0x00000000) Wine-dbg>
What happens if you reinstall the app or reregister all the DLLs shipped with it (using regsvr32) ? Does that fix it ?
thanks -mike
Mike Hearn wrote:
What happens if you reinstall the app or reregister all the DLLs shipped with it (using regsvr32) ? Does that fix it ?
Because of some reconfiguration on my end, I performed a new clean install in a fresh c: and fresh ~/.wine/config just a couple of days ago, with a CVS from then.
Duane Clark wrote:
Mike Hearn wrote:
What happens if you reinstall the app or reregister all the DLLs shipped with it (using regsvr32) ? Does that fix it ?
Because of some reconfiguration on my end, I performed a new clean install in a fresh c: and fresh ~/.wine/config just a couple of days ago, with a CVS from then.
If I had some idea of what is going on in the traces, I would attempt to do some debugging. Do you know of any "Marshalling for dummies" or some such thing? Currrently the traces are complete jibberish to me.
Is this likely to be a result of the unimplemented functions in the traces? fixme:ole:FTMarshalImpl_GetUnmarshalClass (), stub! fixme:ole:FTMarshalImpl_MarshalInterface (), stub!
On Fri, 09 Jul 2004 10:17:07 -0700, Duane Clark wrote:
If I had some idea of what is going on in the traces, I would attempt to do some debugging. Do you know of any "Marshalling for dummies" or some such thing? Currrently the traces are complete jibberish to me.
Is this likely to be a result of the unimplemented functions in the traces? fixme:ole:FTMarshalImpl_GetUnmarshalClass (), stub! fixme:ole:FTMarshalImpl_MarshalInterface (), stub!
Hmm, well, OLE marshalling isn't something you can explain in 5 minutes ... I keep meaning to do this but if you like I'll post a complete (to my knowledge) explanation of how it all works say over the weekend or on Monday.
But to get you started, I don't know if the FTM stubs are a problem or not, but this bit almost certainly is:
trace:ole:CoUnmarshalInterface (0x402b4180,{27a4f276-6452-11d2-ba1d-0008c7a01e5d},0x46cb413c) trace:ole:WINE_StringFromCLSID 0x46cb4014->{402B4180-FA0C-40EE-EBF8-EE40F0CE5360} trace:ole:CoGetClassObject CLSID: {402b4180-fa0c-40ee-ebf8-ee40f0ce5360}, IID: {00000001-0000-0000-c000-000000000046} warn:ole:CoGetClassObject class {402B4180-FA0C-40EE-EBF8-EE40F0CE5360} not registered
Basically as part of unmarshalling an interface, a "proxy/stub class factory" is activated. This is a COM object that implements IPSFactoryBuffer:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/cmi...
which as you can see can then be used to construct proxy and stub objects. Therefore if this object cannot be activated for whatever reason, unmarshalling cannot continue and we bail out, handing the app a null vtable which it then dereferences.
So you need to figure out why {402b4180-fa0c-40ee-ebf8-ee40f0ce5360} isn't being registered, which may involve figuring out what it actually is :)
Good luck! If a more complete marshalling explanation would be useful, let me know and I'll see what I can do in a few days.
thanks -mike
Mike Hearn wrote:
... So you need to figure out why {402b4180-fa0c-40ee-ebf8-ee40f0ce5360} isn't being registered, which may involve figuring out what it actually is :)
Okay, I'll see if I can make some sense out of that.
Good luck! If a more complete marshalling explanation would be useful, let me know and I'll see what I can do in a few days.
There is no hurry, since it works fine if I back out the one patch. But yes, I certainly would appreciate a more complete explanation.
On Fri, 2004-07-09 at 21:18, Duane Clark wrote:
Mike Hearn wrote:
... So you need to figure out why {402b4180-fa0c-40ee-ebf8-ee40f0ce5360} isn't being registered, which may involve figuring out what it actually is :)
Okay, I'll see if I can make some sense out of that.
Good luck! If a more complete marshalling explanation would be useful, let me know and I'll see what I can do in a few days.
There is no hurry, since it works fine if I back out the one patch. But yes, I certainly would appreciate a more complete explanation.
I am 100% certain that the patch is correct. As Mike explained it seems to have uncovered a bug or installation issue that wasn't triggered before because we faked the marshalling. I don't think it is a good idea to back the patch out of cvs as it slightly improves InstallShield.
Rob
On Sat, 10 Jul 2004 18:24:00 +0100, Robert Shearman wrote:
I don't think it is a good idea to back the patch out of cvs as it slightly improves InstallShield.
How does it improve InstallShield? I only started looking at IS stuff again after the patch went in, so I don't have anything to compare it against.
thanks -mike