OSEC

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.mayersPREVIO.COM)
Date: Wed Apr 18 2001 - 15:18:19 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    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.robinsonNEXOR.CO.UK]
    Sent: Wednesday, April 18, 2001 8:59 AM
    To: DCOMDISCUSS.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-requestDISCUSS.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-requestDISCUSS.MICROSOFT.COM