[omniORB] debugging with omniORB

Stefan Seefeld seefelds@MAGELLAN.UMontreal.CA
Thu, 07 Oct 1999 14:28:23 +0000


Sai-Lai Lo wrote:
> 
> >>>>> Stefan Seefeld writes:
> 
> > Well, yes. I dumped NP_RepositoryID() and got an 'invalid reference' or
> > so. Well, that's exactly what I thought. However, I'd like to use RTTI
> > to also get the object's type which's ref counter caused the exception.
> > Therefor I added the necessary code to omniORB's objectRef.cc. I didn't
> > have time to finish this so I'll try it tomorrow. The question remains:
> > wouldn't it be possible to provide more verbose output from omniORB in
> > the first place (something in the line of what I did), at least when
> > -ORBtraceLevel is high enough ?
> 
> Sure, we can add the additional trace messages if it proves to be useful.  It
> is a fine balance deciding what to trace. Too much output just make the
> trace messages less useful and obscure the program logic in the source.

Right. But to get the balance right you already introduced trace levels.
So all you need is set the required trace level high enough to give such
verbose output.

> In the ORB runtime, there is quite a lot of defensive checks to detect if
> the ORB internal state is becoming inconsistent. If that happens, the ORB
> throws a fatalException with the processing. You can use
> -ORBabortOnInternalError 1 to force a core dump when fatalException occurs
> so at least you can do a post-mortem of what has gone wrong. By the way, a
> fatalException does not necessarily mean that you have found a bug in the
> ORB :-) May be 99 out of a 100 it is caused by bugs in the applications :-)

oh, I'm actually sure that the problem is on my side ! I just try to find
out where because the project is quite large (the 'berlin project': we manage
a display server which has a scene graph which's nodes are all subclasses of
a Graphic interface. *Everything* including transformations and regions is done 
with CORBA objects; it's a work based on Fresco.)

> Any other suggestions on ways to make debugging easier are most welcomed.

well, currently you log a message if I try to release an object twice.
I think all the other methods like ISReady(), Duplicate(), Dispose() could all
do the same (if trace level is over 10^3 if you prefer :).

Thanks a lot !

Stefan

_______________________________________________________              
              
Stefan Seefeld
Departement de Physique
Universite de Montreal
email: seefelds@magellan.umontreal.ca

_______________________________________________________

      ...ich hab' noch einen Koffer in Berlin...