[Bug 1131] rpcrt4.dll.so with ms office 2k
Wine Bugs
wine-bugs at winehq.com
Sat Jun 28 07:59:33 CDT 2003
http://bugs.winehq.com/show_bug.cgi?id=1131
------- Additional Comments From z_god at 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.
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs
mailing list