Colin Whittaker wrote:
> Carmelo Amoroso wrote:
>> Try enabling debug early support into dynamic linker and run again.
>> Just to see if it is failing in the dynamic linker or in the application.
>> I suggest to build uclibc with full debug symbols too and start a real 
>> debuggging session
>> with gdb.
>> I'd suggest to set bp in __uClibc_main (unless you are failing before 
>> entering in this
>> function), and then go step by step.
>>
>> I successfully debugged the ld.so in the past, so it is not impossible.
>>
>> Carmelo
>>   
> Thanks Carmelo,
> I enabled debug early support into dynamic linker and have the same results.
> I tried to break at __uClibc_main, and it segfaults before that.
> 
> Any hints on how to debug ld.so ?
> Where does it get invoked ?
> 
> Colin..
> 
Hi,
may you post the output, and readelf -a ? it may helps.
(if you prefer send me privately)

For debugging the ld.so
1) hack ld.so Makefile file to add -g to  (it was removed in trunk)
2) install uclibc in a glibc/uclibc working system into a non system path
  (let's say /broken/lib/)
3) compile your hello world by overriding the dynamic linker with
   -Wl,--dynamic-linker,/broken/lib/ld-uClibc.so.0
4) install helloworl on the mips target
5) on the target launch gdbserver localhost:xxx ./helloworld
6) on the host, from within the source dir, launch xxx-gdb ./lib/ld-uClibc.so.0
7) connect from gdb console to the remote target as usual
8) now you can set bp in _dl_start, _dl_get_ready_to_run and so on (you cannot 
step in libc.so.0, but
   if you are ure something wrong happens in ld.so, that's the way)


Not a standard way, but really an interesting debugging session for what are
involved into the ld.so internals ;)

Cheers,
Carmelo
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to