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
