Re: Troubleshooting broken gdbserver/remote-target

Grant Edwards
2009-06-23T18:25:16Z

> On 2009-06-23, Paul Pluzhnikov <ppluzhnikov@google.com> wrote:
>
>>> What would cause gdb to miss out on the fact that
>>> /lib/libuClibc-0.9.30.1.so is mapped?
>>>
>>> Where does gdb get mapping info?
>>
>> I believe the code GDB should be using on Linux is in solib-svr4.c
>>
>> Gdb looks for _r_debug symbol and DT_DEBUG Elf32_Dyn entry to
>> find the 'struct r_debug', which contains a linked list of
>> loaded shared libraries, and traverses that list.
>
> Thanks for the hint. When I have a chance I'll see if I can
> figure out what's wrong. I presume gdb is looking for those
> symbols in the ELF executable file?
>
>> My guess: either GDB is not finding _r_debug, or (more likely)
>> is not traversing the list correctly.
>
> I found other reports that 6.8 doesn't work for ARM targets,
> but 6.7.1 does. I switched from 6.8 to 6.7.1, and that fixed
> the problem.
>
> Now to see if that fixed the problems with thread support
> as well...

Indeed it does!

Multithreaded debugging using gdbserver on an ARM9 target works
fine with 6.7.1, but it with 6.8 you get SIG32 and a variety of
other problems.

--
Grant Edwards grante Yow! ... I want FORTY-TWO
at TRYNEL FLOATATION SYSTEMS
visi.com installed within SIX AND A
HALF HOURS!!!