Re: pthreads debug with gdbserver

Vladimir Vorobyov
2004-11-20T12:29:56Z

Thank for your inputs. I moved further - see below.

> > info shared reports: "No shared libraries loaded at this time".
> > Straces shows that gdb opens only ld.so file.
> > When adding printf to solibopen it also shows only ld.so.
> > Who is responsible for loading shared libs ? What file/function/event?
>
> This usually means that the ld.so GDB has opened is not -exactly- the
> same as the one on your target; and then it has set the solib event
> breakpoint at the wrong location, and it hasn't been hit. Take a look
> at solib-svr4.c if you want more details.

As I said in my first message the breakpoint is hit exactly 3 times. I found
that current_sos in solib-svr4.c can not find any libraries. It was because
first_link_map_member returned NULL. After this I found that
SVR4_FETCH_LINK_MAP_OFFSETS did not return correct offsets (which are correct
for me? ilp32?). I tried to follow those gdbach_data calls but it was too
difficult. I just assigned svr4_ilp32_fetch_link_map_offsets to
SVR4_FETCH_LINK_MAP_OFFSETS (how to do it correctly?).
After this with every shlib breakpoint hit gdb loads appropriate shared lib
BUT gdbserver reports "Target does not support breakpoints" 3 times for each
library loaded. What does it mean ?
I still receive SIG32, info threads still shows only one thread. "info shared"
shows all libraries that are loaded and td_ta_new() call now returns
successfully.

> > Yes, the problem number one is that GDB does not auto loads shared libs.
> > Is it not the same when I manually add-symbol-file lipthread.so? Can I do
> > it to load shared libs ?
> > When I do this I got "gbd: error initializing thread_db library." error
> > on the target. When I add debug info to it, I see that error is
> > "Incompatible versions of libpthread and libthread_db". But these two
> > libs are from the same libc.
> > It looks like this is my second problem. Or it depends on first one and
> > may disappear when first problem is solved?
>
> Are you sure you loaded the right copy?

Absolutely.

Regards,
Vladimir.