[omniORB] Debug Assertion Failed! Problems with 2.8.0 and Visual C++.

Mike Bendickson bendi003@tc.umn.edu
Thu, 28 Oct 1999 17:30:09 -0500


I am getting the "Debug Assertion Failed!" messages with 2.8.0 and Visual
C++ 6.0 on NT 4.0.

I was using 2.7.1, but had a problem with FreeLibrary() and I DLL that I had
created which was an omniORB client.  2.8.0 seemed to fix this, but I'm now
seeing assertion failures.  I took a step back and created a projects for
the eg2_impl.exe and eg2_clt.exe.  More problems.

It's acting quite flaky for me.  I have no idea what I could be forgetting.
I added the preprocessor defines:

__WIN32__,__x86__,__NT__,__OSVERSION__=4

Include path:

d:\omniORB_280\include

Libraries:

omniORB280_rt.lib omniDynamic280_rt.lib omnithread2_rt.lib

Library path:

d:\omniORB_280\lib\x86_win32

And took the code straight from the examples.

I make minor changes that should not affect program behavior and I end up
with different errors.

With eg2_impl.cc as is I the IOR is printed then:

Debug Assertion Failed!

Program: ...
File: dbgdel.cpp
Line: 47

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

...

Using the debugger it seems to happen on the closing bracket in this block:

  {
    Echo_var myobjRef = myobj->_this();
    CORBA::String_var p = orb->object_to_string(myobjRef);
    cerr << "'" << (char*)p << "'" << endl;
  }

Hmm, it doesn't appear that we need those brackets at all so I remove them.
Now it starts without error.  Hmm.

Ok, so I try the client.  As-is I get:

Caught a system exception.

Adding some exception code:

//  catch(...) {
//    cerr << "Caught a system exception." << endl;
//  }
  catch(const CORBA::SystemException &e) {
   cerr << "Exception: " << e.minor() << ", " << e.completed() << endl;
  }

I now get:

Exception: 0, 1

What's 0?  UNKNOWN?  1 is COMPLETED_NO I think.

Hmm.  Ok, lets hard code the IOR in my client:

//    CORBA::Object_var obj = orb->string_to_object(argv[1]);
CORBA::Object_var obj = orb->string_to_object("IOR:010000000d0...");

Now I get:

Boom!  2 Debug Assertion Failed! messages.  One for the server, one for the
client.  Same message as before.

Any ideas?  I was having no problems with 2.7.1 other than with
FreeLibrary().

Thanks,
-Mike