[omniORB] Help. MSVC++ client crashes mysteriously

W T Meyer meyer at iastate.edu
Wed Jun 8 11:35:09 BST 2005


I am trying to get a client program working on a Windows XP (SP2) machine 
and the server is running on a Linux machine.  The "echo" test program 
works fine using this same set-up.  I am compiling my test application 
(named CoviOmni3_clt) using VC++6, following the directions in the README 
file, with the following exceptions:
1. I changed the libraries to be included to be the versions distributed 
with omniORB (the README refers to older versions).
2. Instead of including "omniDynamic406_rt.lib" I included "msvcstub.lib 
-NODEFAULTLIB:libcmt.lib -NODEFAULTLIB:libcmtd.lib", as is done in the 
dir.mak for echo. I saw an earlier posting recommending the use of 
msvcstub, but I'm including the references to libcmt.lib just because they 
were in the dir.mak file that built a program that works.

CoviOmni3_clt works fine in a linux-to-linux configuration.

I can compile and build both debug and production versions with MSVC++6 
with no errors.

When I run the program, it get as far as my first call to one of my CORBA 
method calls (InitVXIlibrary) and then it crashes.  Stepping through the 
program I find that it crashes in the "_invoke(_call_desc)"
line in the following routine:

CORBA::Short _objref_VXI::InitVXIlibrary()
{
   _0RL_cd_8FC0AD4F74445B06_00000000 
_call_desc(_0RL_lcfn_8FC0AD4F74445B06_10000000, "InitVXIlibrary", 15);


   _invoke(_call_desc);
   return _call_desc.result;


}

Here is the relevant output when it crashes:
The thread 0x8C8 has exited with code 0 (0x0).
First-chance exception in CoviOmni3_clt.exe (KERNEL32.DLL): 0xE06D7363: 
Microsoft C++ Exception.
First-chance exception in CoviOmni3_clt.exe (KERNEL32.DLL): 0xE06D7363: 
Microsoft C++ Exception.
The thread 0xB50 has exited with code 0 (0x0).
The thread 0xAFC has exited with code 0 (0x0).
The program 'C:\Program Files\Microsoft Visual 
Studio\MyProjects\CoviOmni3_clt\Debug\CoviOmni3_clt.exe' has exited with 
code 0 (0x0).


And here is a dump of _call_desc when _invoke is entered.  The value on 
exit is unavailable because it crashes inside _invoke.
-	_call_desc	{...}
-	omniCallDescriptor	{...}
-	__vfptr	0x0041b40c const _0RL_cd_8FC0AD4F74445B06_00000000::`vftable'
	[0x0]	0x00401325 _0RL_cd_8FC0AD4F74445B06_00000000::`vector deleting 
destructor'(unsigned int)
	[0x1]	0x004085d0 omniCallDescriptor::initialiseCall
	[0x2]	0x004085ca omniCallDescriptor::marshalArguments
	[0x3]	0x0040109b 
_0RL_cd_8FC0AD4F74445B06_00000000::unmarshalReturnedValues(class cdrStream &)
	[0x4]	0x004085c4 omniCallDescriptor::userException
	[0x5]	0x004085be omniCallDescriptor::unmarshalArguments
	[0x6]	0x0040119a 
_0RL_cd_8FC0AD4F74445B06_00000000::marshalReturnedValues(class cdrStream &)
	pd_localCall	0x00405700 
_0RL_lcfn_8FC0AD4F74445B06_10000000(omniCallDescriptor *, omniServant *)
	pd_is_oneway	0x00 ''
-	pd_op	0x0041b3f8 "InitVXIlibrary"
		0x49 'I'
	pd_oplen	0x0000000f
-	pd_user_excns	0x00000000
		CXX0030: Error: expression cannot be evaluated
	pd_n_user_excns	0x00000000
	pd_is_upcall	0x00 ''
-	pd_first_address_used	0x00000000
	__vfptr	CXX0030: Error: expression cannot be evaluated
-	pd_current_address	0x00000000
	__vfptr	CXX0030: Error: expression cannot be evaluated
	pd_current	0x00000000
-	pd_current_next	0x00000000
	__vfptr	CXX0030: Error: expression cannot be evaluated
	pd_localCall	CXX0030: Error: expression cannot be evaluated
	pd_is_oneway	CXX0030: Error: expression cannot be evaluated
	pd_op	CXX0030: Error: expression cannot be evaluated
	pd_oplen	CXX0030: Error: expression cannot be evaluated
	pd_user_excns	CXX0030: Error: expression cannot be evaluated
	pd_n_user_excns	CXX0030: Error: expression cannot be evaluated
	pd_is_upcall	CXX0030: Error: expression cannot be evaluated
	pd_first_address_used	CXX0030: Error: expression cannot be evaluated
	pd_current_address	CXX0030: Error: expression cannot be evaluated
	pd_current	CXX0017: Error: symbol "omniCurrent" not found
	pd_current_next	CXX0030: Error: expression cannot be evaluated
	pd_objref	CXX0030: Error: expression cannot be evaluated
	pd_poa	CXX0017: Error: symbol "omni::omniOrbPOA" not found
	pd_localId	CXX0017: Error: symbol "omniLocalIdentity" not found
	pd_deadline_secs	CXX0030: Error: expression cannot be evaluated
	pd_deadline_nanosecs	CXX0030: Error: expression cannot be evaluated
-	pd_objref	0x00000000
	__vfptr	CXX0030: Error: expression cannot be evaluated
	pd_refCount	CXX0030: Error: expression cannot be evaluated
	pd_mostDerivedRepoId	CXX0030: Error: expression cannot be evaluated
	pd_intfRepoId	CXX0030: Error: expression cannot be evaluated
	pd_ior	CXX0017: Error: symbol "" not found
	pd_id	CXX0017: Error: symbol "omniIdentity" not found
	pd_next	CXX0030: Error: expression cannot be evaluated
	pd_prev	CXX0030: Error: expression cannot be evaluated
-	pd_flags	{...}
	forward_location	CXX0030: Error: expression cannot be evaluated
	type_verified	CXX0030: Error: expression cannot be evaluated
	object_exists	CXX0030: Error: expression cannot be evaluated
	transient_exception_handler	CXX0030: Error: expression cannot be evaluated
	commfail_exception_handler	CXX0030: Error: expression cannot be evaluated
	system_exception_handler	CXX0030: Error: expression cannot be evaluated
	static_repoId	CXX0030: Error: expression cannot be evaluated
	orb_shutdown	CXX0030: Error: expression cannot be evaluated
	pd_timeout_secs	CXX0030: Error: expression cannot be evaluated
	pd_timeout_nanosecs	CXX0030: Error: expression cannot be evaluated
	pd_poa	0x00000000
	pd_localId	0x00000000
	pd_deadline_secs	0x00000000
	pd_deadline_nanosecs	0x00000000
	result	0xcccc
+	this	0x00342800

Can anyone give me some insight into what is going on?

Thanks,

Tom




More information about the omniORB-list mailing list