http://bugs.winehq.com/show_bug.cgi?id=1131
------- Additional Comments From z_god@wanadoo.nl 2003-28-06 07:59 ------- Bug comments restored from Gmane.org:
when using the cvs build of wine with ms office 2000, trying to start an application brings up the app splash screen followed by a wine-debug window... last error message: 0x40a6c45c (RPCRT4.DLL.UuidToStringA+0x40 in rpcrt4.dll.so): movzbl 0xf(%esi),%eax
any ideas?
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-07 10:41 ------- Hmm, interesting crash. Could you please give *detailed* output, though ?
------- Additional Comments From jms <at> josh.com 2002-11-07 11:01 ------- is this what you are looking for? this is the full contents of the debug window...
WineDbg starting on pid 8378c98 No debug information in ELF 'wine' (0x00000000) Breakpoint 1 at 0x4000acb0 Loaded debug information from ELF '/usr/lib/libntdll.dll.so' (0x40024000) No debug information in ELF '/usr/lib/libwine.so' (0x40122000) No debug information in ELF '/usr/lib/libwine_unicode.so' (0x40139000) No debug information in ELF '/lib/i686/libm.so.6' (0x4021a000) No debug information in ELF '/lib/libdl.so.2' (0x4023c000) No debug information in ELF '/lib/ld-linux.so.2' (0x40000000) No debug information in ELF '/lib/libnss_files.so.2' (0x40240000) No debug information in ELF '/usr/lib/wine/advapi32.dll.so' (0x40743000) No debug information in ELF '/usr/lib/wine/kernel32.dll.so' (0x40773000) No debug information in ELF '/usr/lib/wine/gdi32.dll.so' (0x40822000) No debug information in ELF '/usr/lib/wine/ole32.dll.so' (0x408a0000) No debug information in ELF '/usr/lib/wine/user32.dll.so' (0x4090d000) No debug information in ELF '/usr/lib/wine/rpcrt4.dll.so' (0x40a31000) No debug information in ELF '/usr/lib/libfreetype.so.6' (0x40a79000) No debug information in ELF '/usr/lib/wine/x11drv.dll.so' (0x40ac2000) No debug information in ELF '/usr/X11R6/lib/libSM.so.6' (0x40b23000) No debug information in ELF '/usr/X11R6/lib/libICE.so.6' (0x40b2c000) No debug information in ELF '/usr/X11R6/lib/libXxf86dga.so' (0x4024a000) No debug information in ELF '/usr/X11R6/lib/libXv.so' (0x40b43000) No debug information in ELF '/usr/X11R6/lib/libXext.so.6' (0x40b47000) No debug information in ELF '/usr/X11R6/lib/libX11.so.6' (0x40b55000) No debug information in ELF '/usr/X11R6/lib/X11/locale/common/xlcUTF8Load.so.2' (0x40019000) No debug information in ELF '/usr/X11R6/lib/X11/locale/common/ximcp.so.2' (0x40c33000) No debug information in ELF '/usr/X11R6/lib/libXrender.so.1' (0x4001b000) No debug information in 32bit DLL 'C:\Program Files\Microsoft Office\Office\EXCEL.EXE' (0x30000000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\NTDLL.DLL' (0x40060000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\KERNEL32.DLL' (0x407b0000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\ADVAPI32.DLL' (0x40760000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\GDI32.DLL' (0x40840000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\USER32.DLL' (0x40940000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\RPCRT4.DLL' (0x40a50000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\OLE32.DLL' (0x408c0000) No debug information in 32bit DLL 'C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\MSO9.DLL' (0x308c0000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\X11DRV.DLL' (0x40ae0000) No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\ACTXPRXY.DLL' (0x70390000) Unhandled exception: page fault on read access to 0x0000000f in 32-bit code (0x40a6c45c). In 32-bit mode. 0x40a6c45c (RPCRT4.DLL.UuidToStringA+0x40 in rpcrt4.dll.so): movzbl 0xf(%esi),%eax
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-07 11:05 ------- Ah, I see. Hmm, could you also post the additional lines done by a "backtrace" ?
------- Additional Comments From jms <at> josh.com 2002-11-07 11:08 ------- here is the backtrace
=>0 0x40a6c45c (RPCRT4.DLL.UuidToStringA+0x40 in rpcrt4.dll.so) (ebp=40731cc0) 1 0x40a661d9 (RPCRT4.DLL.NdrDllRegisterProxy+0xc9 in rpcrt4.dll.so) (ebp=40731 e04) 2 0x70391bfc (ACTXPRXY.DLL.DllRegisterServer+0x26 in C:\WINDOWS\SYSTEM\ACTXPRX Y.DLL) (ebp=40731f68) 3 0x3000dae8 (EXCEL.EXE.EntryPoint+0xb490 in C:\Program Files\Microsoft Office \Office\EXCEL.EXE) (ebp=40732cfc) 4 0x30005968 (EXCEL.EXE.EntryPoint+0x3310 in C:\Program Files\Microsoft Office \Office\EXCEL.EXE) (ebp=40732de4) 5 0x300027e4 (EXCEL.EXE.EntryPoint+0x18c in C:\Program Files\Microsoft Office\ Office\EXCEL.EXE) (ebp=40732e00) 6 0x300026e5 (EXCEL.EXE.EntryPoint+0x8d in C:\Program Files\Microsoft Office\O ffice\EXCEL.EXE) (ebp=40732e8c) 7 0x400c5500 (start_process+0x238 [process.c] in libntdll.dll.so) (ebp=40732f3 0) 8 0x400c9479 (call_on_thread_stack+0x79 [sysdeps.c] in libntdll.dll.so) (ebp=4 0732ff4) 9 0x400c95b4 (SYSDEPS_CallOnStack+0x14 in libntdll.dll.so) (ebp=00000000)
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-07 12:48 ------- Hmm, sorry, I simply see that I don't see at which line exactly it crashes. Sounds like it's missing some debug information...
Could you also paste "info local" and "info reg" ? Thanks !
------- Additional Comments From jms <at> josh.com 2002-11-07 12:55 ------- here it is...hope it helps!
info local: RPCRT4.DLL.UuidToStringA:
info reg: Register dump: CS:0023 SS:002b DS:002b ES:002b FS:008f GS:0000 EIP:40a6c45c ESP:40731cb8 EBP:40731cc0 EFLAGS:00010206( R- 00 I - -P1 ) EAX:0000000e EBX:40a78e44 ECX:4025001c EDX:4028dd00 ESI:00000000 EDI:7039f990
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-07 13:07 ------- Sorry, not at all. No information here either :-\ Could you attach a --debugmsg +relay,+ole logfile ?
------- Additional Comments From jms <at> josh.com 2002-11-07 14:02 ------- Created an attachment (id=327) --> (http://bugs.winehq.com/attachment.cgi?id=327&action=view) +relay,+ole trace !!!Warning....77mb when uncompressed!!!
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-07 15:14 ------- Hmm, the program calls NdrDllRegisterProxy:
083765d8:Call rpcrt4.NdrDllRegisterProxy(70390000,7039f370,703982b0) ret=70391bf c trace:ole:NdrDllRegisterProxy (0x70390000,0x7039f370,{b8da6310-e19b-11d0-933c-00 a0c90dcaa9}) 083765d8:Call ntdll.RtlAllocateHeap(40250000,00000000,00000025) ret=40a6c442 083765d8:Ret ntdll.RtlAllocateHeap() retval=4028e078 ret=40a6c442 trace:ole:NdrDllRegisterProxy registering IActiveScriptStats {70395720-57a2-7039 -b255-397000000000} => b8da6310-e19b-11d0-933c-00a0c90dcaa9 083765d8:Call ntdll.RtlAllocateHeap(40250000,00000000,00000025) ret=40a6c442 083765d8:Ret ntdll.RtlAllocateHeap() retval=4028e128 ret=40a6c442
which then leads to:
083765d8:Ret advapi32.RegCloseKey() retval=00000000 ret=40a66291 trace:ole:NdrDllRegisterProxy registering IActiveScriptParseProcedure2 (null) => b8da6310-e19b-11d0-933c-00a0c90dcaa9 083765d8:Call ntdll.RtlAllocateHeap(40250000,00000000,00000025) ret=40a6c442 083765d8:Ret ntdll.RtlAllocateHeap() retval=4028e128 ret=40a6c442 083765d8:Call kernel32.UnhandledExceptionFilter(40620900) ret=302c34f5 wine: Unhandled exception, starting debugger...
Note that proxy->header.piid is null !!
But AFAICS UuidToString should handle the first argument (null) just fine. (it properly assigns the null uuid to it in case it's null). Why that now crashes is beyond me...
Could you add some more TRACEs to dlls/rpcrt4/rpcrt4_main.c/UuidToStringA() in order to nail down why exactly it crashes in that function ?
Thanks !
------- Additional Comments From jms <at> josh.com 2002-11-07 15:23 ------- as i am new to this, can you tell me what it is you want me to add to dlls/rpcrt4/rpcrt4_main.c/UuidToStringA()? sorry for the ignorance...
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-07 17:13 ------- Oh come on :-) You don't want to tell me you don't know to add a simple TRACE ? :) Just add something like TRACE("stupid trace\n"); and then tell me in which line it crashes. (preferrably also with printout of variables if possible) (sorry, I'm too stupid to manage to think why and where exactly it might crash, so you'll have to tell me :-)
------- Additional Comments From jms <at> josh.com 2002-11-08 12:07 ------- naw, man... i don't think you understand... i am a router/firewall guy, not a programmer... in order to do this, i would need very explicit instructions... sorry! :-/
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-08 13:58 ------- choose your favorite test editor and edit where_ever_wine_is/dlls/rpcrt4/rpcrt4_main.c
search for UuidToStringA
You should end up with at this
/************************************************************************* * UuidToStringA [RPCRT4.@] * * Converts a UUID to a string. * * UUID format is 8 hex digits, followed by a hyphen then three groups of * 4 hex digits each followed by a hyphen and then 12 hex digits * * RETURNS * * S_OK if successful. * S_OUT_OF_MEMORY if unsucessful. */ RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, LPSTR* StringUuid) { *StringUuid = HeapAlloc( GetProcessHeap(), 0, sizeof(char) * 37);
if(!(*StringUuid)) return RPC_S_OUT_OF_MEMORY;
if (!Uuid) Uuid = &uuid_nil;
sprintf(*StringUuid, "%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", Uuid->Data1, Uuid->Data2, Uuid->Data3, Uuid->Data4[0], Uuid->Data4[1], Uuid->Data4[2], Uuid->Data4[3], Uuid->Data4[4], Uuid->Data4[5], Uuid->Data4[6], Uuid->Data4[7] );
return RPC_S_OK; } ---
Insert trace statements before each statement so we an find out what is going wrong like so
/************************************************************************* * UuidToStringA [RPCRT4.@] * * Converts a UUID to a string. * * UUID format is 8 hex digits, followed by a hyphen then three groups of * 4 hex digits each followed by a hyphen and then 12 hex digits * * RETURNS * * S_OK if successful. * S_OUT_OF_MEMORY if unsucessful. */ RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, LPSTR* StringUuid) { TRACE("before HeapAlloc") *StringUuid = HeapAlloc( GetProcessHeap(), 0, sizeof(char) * 37); TRACE("Before if(!(*StringUuid))") if(!(*StringUuid)) return RPC_S_OUT_OF_MEMORY; TRACE("Before if(!Uuid)") if (!Uuid) Uuid = &uuid_nil; TRACE("Before sprintf(")
sprintf(*StringUuid, "%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", Uuid->Data1, Uuid->Data2, Uuid->Data3, Uuid->Data4[0], Uuid->Data4[1], Uuid->Data4[2], Uuid->Data4[3], Uuid->Data4[4], Uuid->Data4[5], Uuid->Data4[6], Uuid->Data4[7] ); TRACE("Before Return") return RPC_S_OK; }
Save the file and do a "make && make depend", "su" "make install" cycle so the traces are in the wine binary
Is that simple enough or would you want more help?
------- Additional Comments From jms <at> josh.com 2002-11-08 23:08 ------- ok, so when adding the trace statements to rpcrt4_main.c following the instructions you gave, i noticed that you had an additional if condition that the current cvs source (20021031) didn't actually include... "if (!Uuid) Uuid = &uuid_nil;" i added it to the file, did a make depend,make, make install and i now can start excel... sorry for the lack of knowledge on the debugging, but i figured i would do the right thing when i came across the error and lend help the best i could...
any clue as to how to get it to stop telling me that "the file you are trying to open doesn't exist" when i try to open a file that truely does exist? Thanks again for your help!
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-09 00:09 ------- It looks like the "if (!Uuid) Uuid = &uuid_nil;" was added to CVS since the last snapshot (20021031). (I use CVS bleading edge So that solves that.)
About the file not being found I think you should start a new bug report for that. I think it might be a case sensitivity thing but without a trace I wouldn't know. Please open a new bug report and I will see what I can do.
Resolving fixed (fix is already in cvs)
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-09 03:16 ------- Argl ! Now that's why I couldn't find any problem within this function.
20021031 is **NOT** current CVS. CVS is CVS, and it's *much* more current than the STANDARD RELEASE 20021031, of course (tons of new patches).
Anyway, glad to see your issue fixed :)
Hmm, about the file problem: no idea. You could open a separate bug (with current CVS, pleeezze !!!) and attach a --debugmsg +relay,+file,+dosfs,+commdlg logfile.
------- Additional Comments From dpaun <at> rogers.com 2003-03-30 23:13 ------- Closing time.