[omniORB] Debugging under Linux

Kevin Bailey keraba@yahoo.com
Tue, 14 Nov 2000 15:47:31 -0800


I'm experiencing some funny problems debugging omniORB programs
under Linux and I was wondering if other Linux user were seeing
the same thing and/or how they were getting around the problems.

In short, it seems like thread handling under gdb is faulty. To
be specific, it can't seem to figure out which thread deserves
to receive an event. For example, when executing the standard
ORBInit, some thread somewhere gets a "SIG32: real-time event
32" signal and the _main_ thread suspends. This is only an
annoyance. What's making it impossible to debug is that when it
hits a breakpoint, gdb can't seem to figure out which thread
halted. Perhaps breakpoints are implemented with signals ? In
any case, when I do a 'info stack' after a breakpoint is hit,
the thread it shows is somewhere other than the breakpoint.

I don't know if its relevant but this message is printed out
when I first 'run':

warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.

Is there an option I can set under gdb to watch threads closer
or perhaps I need to recompile a library with debugging ? (I've
already compiled omniORB with debugging.) Are other Linux users
even seeing this problem ?