I'm dumping loadaddr and func just before that segfault so ignore the line numbers (i have half a gazillion lines of debugging) .... the only thing that changes is the loadaddr, the func value is always the same.
_dl_get_ready_to_run:838: We got here: 838, loadaddr = 0xb7bdc000 _dl_get_ready_to_run:839: We got here: 839, func = U��S��� Segmentation fault Regards Nigel On Thu, 2008-03-27 at 14:21 +0000, Nigel Kukard wrote: > Ok, > > I've tracked this error now in uclibc svn to these lines in > ldso/ldso.c... > > Segfault now occurs on that line ... > > if (tpnt->dynamic_info[DT_INIT]) { > > > void (*dl_elf_func) (void); > > > > > > > dl_elf_func = (void (*)(void)) DL_RELOC_ADDR(tpnt->loadaddr, > tpnt->dynamic_info[DT_INIT]); > > > > > > _dl_if_debug_dprint("calling INIT: %s\n\n", tpnt->libname); > > > > > > > ======>>>>> DL_CALL_FUNC_AT_ADDR (dl_elf_func, tpnt->loadaddr, > (void(*)(void))); > > _dl_debug_early("We got here: %i\n",__LINE__); > > > } > > > Here is the GDB trace... > GNU gdb 6.6 > Copyright (C) 2006 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i586-linux-uclibc"... > Using host libthread_db library "/lib/libthread_db.so.1". > (gdb) run > Starting program: /bin/rpm > argc=1 argv=0xbf9ef704 envp=0xbf9ef70c > ELF header=0xb7fca000 > First Dynamic section entry=0xb7fd5ef8 > Scanning DYNAMIC section > Done scanning DYNAMIC section > About to do library loader relocations > Done relocating ldso; we can now use globals and make function calls! > _dl_get_ready_to_run:172: Cool, ldso survived making function calls > _dl_get_ready_to_run:264: Position Independent Executable: > app_tpnt->loadaddr=0x80000000 > _dl_malloc:937: mmapping more memory > _dl_get_ready_to_run:354: Lib Loader: (0xb7fca000) /lib/ld-uClibc.so.0 > _dl_get_ready_to_run:292: calling mprotect on the application program > _dl_get_ready_to_run:621: Loading: (0xb7f3a000) /usr/lib/librpm-4.4.so > _dl_get_ready_to_run:621: Loading: (0xb7de8000) /usr/lib/librpmdb-4.4.so > _dl_get_ready_to_run:621: Loading: (0xb7d34000) /usr/lib/librpmio-4.4.so > _dl_get_ready_to_run:621: Loading: (0xb7d2c000) /usr/lib/libpopt.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7d11000) /usr/lib/libelf.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7cdc000) /usr/lib/libbeecrypt.so.6 > _dl_get_ready_to_run:621: Loading: (0xb7cc7000) /usr/lib/libneon.so.25 > _dl_get_ready_to_run:621: Loading: (0xb7ca6000) /usr/lib/libexpat.so.1 > _dl_get_ready_to_run:621: Loading: (0xb7c95000) /lib/libm.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c90000) /lib/libdl.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c7a000) /usr/lib/libz.so.1 > _dl_get_ready_to_run:621: Loading: (0xb7c64000) /lib/libpthread.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7de8000) /usr/lib/librpmdb-4.4.so > _dl_get_ready_to_run:621: Loading: (0xb7d34000) /usr/lib/librpmio-4.4.so > _dl_get_ready_to_run:621: Loading: (0xb7d2c000) /usr/lib/libpopt.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7d34000) /usr/lib/librpmio-4.4.so > _dl_get_ready_to_run:621: Loading: (0xb7d2c000) /usr/lib/libpopt.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7d11000) /usr/lib/libelf.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c64000) /lib/libpthread.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7cdc000) /usr/lib/libbeecrypt.so.6 > _dl_get_ready_to_run:621: Loading: (0xb7cc7000) /usr/lib/libneon.so.25 > _dl_get_ready_to_run:621: Loading: (0xb7c95000) /lib/libm.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c90000) /lib/libdl.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c7a000) /usr/lib/libz.so.1 > _dl_get_ready_to_run:621: Loading: (0xb7c64000) /lib/libpthread.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c64000) /lib/libpthread.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c90000) /lib/libdl.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c7a000) /usr/lib/libz.so.1 > _dl_get_ready_to_run:621: Loading: (0xb7ca6000) /usr/lib/libexpat.so.1 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_get_ready_to_run:621: Loading: (0xb7c05000) /lib/libc.so.0 > _dl_malloc:937: mmapping more memory > _dl_get_ready_to_run:748: Beginning relocation fixups > _dl_get_ready_to_run:764: We got here: 764 > _dl_get_ready_to_run:769: We got here: 769 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:771: We got here: 771 > _dl_get_ready_to_run:782: We got here: 782 > _dl_get_ready_to_run:792: We got here: 792 > _dl_get_ready_to_run:811: We got here: 811 > _dl_get_ready_to_run:818: We got here: 818 > _dl_get_ready_to_run:822: We got here: 822 > _dl_get_ready_to_run:828: We got here: 828 > _dl_get_ready_to_run:832: We got here: 832 > _dl_get_ready_to_run:835: We got here: 835 > _dl_get_ready_to_run:838: We got here: 838 > > Program received signal SIGSEGV, Segmentation fault. > 0xb7c368fd in ?? () > (gdb) bt > #0 0xb7c368fd in ?? () > #1 0xb7fcb2a8 in _dl_do_reloc (tpnt=0xb7c63820, scope=0x0, rpnt=0xb8, > symtab=0xb7c59ab0, strtab=0x1000 "5\a") at ldso/ldso/i386/elfinterp.c:238 > #2 0xb7c59ace in ?? () > #3 0xb7c63820 in ?? () > #4 0x00000000 in ?? () > (gdb) > > > Not sure if I"m doing anything wrong, I enabled -g3 in uclibc build and all > debugging options, but I'm still getting ?? 's there. > > Anywhere I can look to try find the problem? > > Regards > Nigel > > _______________________________________________ > uClibc mailing list > uClibc@uclibc.org > http://busybox.net/cgi-bin/mailman/listinfo/uclibc -- Regards Nigel Kukard, PhD CompSc Linux Based Systems Design Support: 086 747 7600 (premium 24/7/365) Fax: 086 601 7884 Quote: The best language to use is the language that was designed for what you want to use it for. *** The attachment to my email signature.asc is a digital PGP signature, if your mail client supports digital signatures it will allow you to verify I am the sender of this email and that it has not been tampered with along the way ***
signature.asc
Description: This is a digitally signed message part
_______________________________________________ uClibc mailing list uClibc@uclibc.org http://busybox.net/cgi-bin/mailman/listinfo/uclibc