Re: pthreads debug with gdbserver

Vladimir Vorobyov
2004-11-22T12:41:03Z

> > 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.
>
> Take a look at the source code to gdbserver. Andreas, now I remember
> why I enabled thread_db support on a per-target basis - there are other
> support routines that have to be written.

> Yes, I have noticed that, too. I'm currently trying to get it working for
> m68k (plus support for PTRACE_GETREGS).

> What routines should I add?

> Also I've added set_solib_svr4_fetch_link_map_offsets (gdbarch,
> svr4_ilp32_fetch_link_map_offsets) to m68klinux-tdep.c.
> It fixed the problem with bad link_map_offsets.

I think I've added all missing routines and it ALMOST work.
First, I have to specify 'set remotetimeout 60' otherwise gdb reports timeout
error (Ignoring packet error, continuing...).
- Is it normal ?
Second, after I set any break point (e.g. break main) I cant use 'continue'
command. Program stops after any instruction with SIGTRAP. When I force
gdbserver to ignore 'stepping' variable, everything works fine. But Im sure
it is wrong correction. Who is responsible for reseting stepping? And why we
need it?

Thanks in advance.

Regards,
Vladimir.