|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: Clay Mayers (clay.mayers
PREVIO.COM)Date: Wed Apr 18 2001 - 15:18:19 CDT
I recommend doing two things to help track down the problem. First is to
install the dbg symbols for NT on your system that is crashing. This often
allows the stack trace to get further down the stack and maybe into your
code. Other benefits are that you can often derive meaning from the
function names so you'll have some idea what was happening at the time of
the crash. It also enables win32 heap checking (afaik: must attach the
debugger at launch for this feature - see
<http://support.microsoft.com/support/kb/articles/Q170/7/38.ASP> for how to
attach a debugger when an exe launches [works with debugger="msdev.exe" -
but be sure vc++ is in the system path - can't put the full path to msdev in
the registry value). Second is to turn on loading coff & export symbols
under tools/options/debug. This will give you some potentially valid
functions names for those files that don't have symbols.
fwiw: our problems like this were often cause by incorrectly handling in/out
params. BSTRs are the worst to track down since oleauth32 caches them and
you can easily end up with two threads pointing to the same memory. If you
suspect memory problems, there is an msdn article on how to disable bstr
caching or try using a product like purify or bounds checker.
Clay
-----Original Message-----
From: Keith Robinson [mailto:keith.robinson
NEXOR.CO.UK]
Sent: Wednesday, April 18, 2001 8:59 AM
To: DCOM
DISCUSS.MICROSOFT.COM
Subject: unknown reason for crash in OLEAUT32.DLL
Hi, I have a windows 2000 service which starts up several COM servers when
it needs to and calls various interfaces on them. When the servers have
finished doing their task, they call a method on an interface which I
passed to them from the service. Both the service and servers are
multi-threaded, written using C++, and IDL for the interfaces which produces
the proxy dll for marshalling.
Generally everthing works fine, but about 1 in 10 times when my service
starts up (under the same test conditions) and is making a lot of calls to
the servers, my service crashes with an unhandled exception in OLEAUT32.DLL.
The stack trace in Visual Studio shows only one line which is OLEAUT32.DLL
and nothing else.
Any ideas? I can only assume its a thread problem, but I don't have a lot to
go on. I think it might be happening when the server is calling back to the
service, at the same time as the service is about to attempt to call one of
the servers.
I am very new to COM so am not very confident in what I am doing/saying!!!
Keith.
----------------------------------------------------------------
Users Guide http://msdn.microsoft.com/workshop/essentials/mail.asp
contains important info. Save time, search the archives at
http://discuss.microsoft.com/archives/index.html .
To unsubscribe, mailto:DCOM-signoff-request
DISCUSS.MICROSOFT.COM
----------------------------------------------------------------
Users Guide http://msdn.microsoft.com/workshop/essentials/mail.asp
contains important info. Save time, search the archives at
http://discuss.microsoft.com/archives/index.html .
To unsubscribe, mailto:DCOM-signoff-request
DISCUSS.MICROSOFT.COM
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]