[omniORB] Weekend CORBA blues #2: user breakpoint on String_var destructor

Bruce Fountain B_Fountain@motherwell.com.au
Mon, 11 Jun 2001 08:01:56 +0800


Here is an odd one...

for some reason, whenever the destructor is called for a CORBA::String_var,
it generates a user breakpoint in my debugger (VC++6 on NT4). The stack
looks like this:


    NTDLL! 77f7629c()
    NTDLL! 77f8c4de()
    NTDLL! 77f7e587()
    NTDLL! 77f64f43()
    MSVCRT! 7800113d()
    operator delete(void * 0x008cbe40) line 7 + 9 bytes
    omni::freeString(char * 0x008cbe40) line 240 + 33 bytes
    _CORBA_String_var::~_CORBA_String_var() line 109 + 11 bytes
    main(int 1, char * * 0x003003a0) line 69
    SERVER! mainCRTStartup + 227 bytes
    KERNEL32! 77f1ba06()

My code couldn't be much simpler:

    int main(int argc, char* argv[])
    {
        {
            CORBA::String_var tr = CORBA::string_dup("foobar");

            // s goes out of scope now
        }
        return 0;
    }

I have never seen this behaviour before and I have no idea what could be
causing it. Perhaps some obscure project setting? Any tips much appreciated,
since this behaviour makes debugging a first class pita.

Oh yes, almost forgot: this only happens for Win32 Console Apps (as
generated by the wizard). MFC AppWizard(exe) projects work fine.

Best regards,

Bruce Fountain
Mi Consulting Group (Australia) Pty Ltd
Direct Line:  +61 (0)8 9368 8607
Switchboard:  +61 (0)8 9368 8600
Facsimile:    +61 (0)8 9368 8699
E-mail: b_fountain@motherwell.com.au