Re: ExecutionEngineException in dotnet 2.0 application doing interop with VB6 legacy code

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



I have attached a debugger to the crashing apps, setting up symbol server and pdb stuff.
The crash is never twice on the same code location.

From what we know now, it appears to have something to do with us not
closing our database connections to sql express explicitly. I have walked the code and made sure all connections where closed when done and the problem disappeared.

We must have had 500+ "open" (in quotes because we don't know when gc will hit) connections. Then the crash appeared.
What bothers me is of course the bug in our code but even more so the fact that there was no exception being thrown when we opened too many connections.

I suspected stdole because sometimes, the attached debugger reported this error : http://dotnetjunkies.com/WebLog/wicwil/archive/2006/04/28/137513.aspx
which is clearly related to COM.

I'm still not convinced our bug is completely solved but practice tells me for the moment it is.

Thanks for your reply Johannes,

Willy.

"Johannes Passing" <jpassing_at_hotmail_com@xxxxxxxxxx> wrote in message news:uY0WKIrJIHA.4584@xxxxxxxxxxxxxxxxxxxxxxx
If the crash occurs repeatedly on certain machines, you should be able to attach a debugger or grab a crash dump. Have you tried so? If yes, is the ExecutionEngineException always thrown at the same code location? If so, can you post a stacktrace, please? Finally, why do you suspect stdole.dll?

--Johannes

Willy Van den Driessche wrote:
We are porting a huge VB6 application to dotnet 2.0. The full application
has 800KLOC of VB6 code. The old application was basically as small shell
application that loaded optional plugins (nearly 100 of them for a complete
installation). Because it is impossible to rewrite all existing code at
once, we have rewritten the shell (as well as new functionality) in dotnet
(also reaching for 200 KLOC of code). The old modules are loaded like they
where loaded in VB6. The main shell show them via an (interop) active control.
Sometimes, the application halts with a ExecutionEngineException exception. But there is really no pattern in this.
Does anybody know how to pinpoint such problems ?

Some background : The old app has a core of 8 VB6 DLLs, which in turn use 4
purchased components (FlexGrid, Janus Grid and buttonbar, ActiveReports 1.6,
DAO 3.5 (yes !)). I have created interop assemblies for these using
TLBIMP.EXE and AXIMP.EXE, making sure they reference one another correctly.
Afterwards I have merged all of these use ILMERGE.EXE to reduce the number
of assemblies. The error *never* occurs on our development machines but on
some testing machines we have the problem (the application is deployed via
ClickOnce but all prerequisites are installed with the same installers that
have been working for 8 years now). The VB6 code use classes written in
..NET (they implement interfaces defined in the VB6 interop assembly)
My little voice tells me it could have something to with stdole.dll. *any*
advice is *very* welcome.

.



Relevant Pages

  • Re: MyString Class
    ... > I compiled your program and run it under the debugger. ... > The first crash happens in ... ... > memory is flawed. ... First bug fixed. ...
    (comp.lang.cpp)
  • Re: Lockup debugging
    ... I can crash the machine when it's running with ScrollLock, ... The debugger cannot break in. ... > locks up. ...
    (microsoft.public.development.device.drivers)
  • Re: Standby-Sleep Problem
    ... If your driver does not explicitly show up in the crash dump, then it does not mean that the crash is not your driver's fault. ... If you cannot attach a debugger, then you will not be successful in developing your driver. ... Break instruction exception - code 80000003 ...
    (microsoft.public.development.device.drivers)
  • MSVC6 SP5 msvcrt exception when writing a large double to a stream
    ... floating point numbers to a stream. ... The code does not crash when compiled with single threaded runtime. ... When run without debugger, the code ... Visual Studio 6 debugger doesn't show the functions in stack trace after ...
    (microsoft.public.vc.stl)
  • Re: VS / PB 6 Always crashes on device boot using KITL / KdStub
    ... Time and date of crash would be helpful if you reported the crash. ... PB Debugger The Kernel Debugger connection has been established ... "Microsoft Visual Studio 2005 has encountered a problem and needs ... to waste a couple of days doing a full system re-install as this ...
    (microsoft.public.windowsce.platbuilder)