Saturday, January 10, 2009

gumstix gdb shared library problems

first posted at Gumstix http://www.nabble.com/gdb-problems-with-hello-world-td21286223.html


hi all,

gdb keeps complaining about not being able to find shared libraries even though they exist.

0x400009e0 in ?? ()
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.

Error while mapping shared library sections:
/lib/libc.so.0: No such file or directory.
Error while mapping shared library sections:
/lib/ld-uClibc.so.0: No such file or directory.
Error while reading shared library symbols:
/lib/libc.so.0: No such file or directory.
Error while reading shared library symbols:
/lib/ld-uClibc.so.0: No such file or directory.

Do I need to have something in my .gdbinit file? This was working fine under ubuntu 7.10 (no .gdbinit file there).

verdex xlp (tftp boot, nfsroot)
netmicroSD

current setup (doesn't work):
ubuntu 8.10

old setup (worked)
ubuntu 7.1

I get the following:
gumstix-gdb -s ./hello --dir ./ ./hello
GNU gdb 6.4
Copyright 2005 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 "--host=i386-pc-linux-gnu --target=arm-linux-uclibcgnueabi"...
(gdb) target remote 192.168.1.100:2000
Remote debugging using 192.168.1.100:2000
0x400009e0 in ?? ()
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
(gdb) l
1 #include
2
3 int main()
4 {
5 printf("\n hello world \n");
6 return 0;
7 }
8
(gdb) break hello.c:5
Breakpoint 1 at 0x8448: file hello.c, line 5.
(gdb) c
Continuing.
Error while mapping shared library sections:
/lib/libc.so.0: No such file or directory.
Error while mapping shared library sections:
/lib/ld-uClibc.so.0: No such file or directory.
Error while reading shared library symbols:
/lib/libc.so.0: No such file or directory.
Error while reading shared library symbols:
/lib/ld-uClibc.so.0: No such file or directory.

Breakpoint 1, main () at hello.c:5
5 printf("\n hello world \n");
(gdb)


Any clues?

thanks,
hypo



This is resolved by doing the following in gdb

set solib-absolute-prefix /home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/staging_dir/lib/
set solib-search-path /home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/staging_dir/lib/


i've added the above lines in my .gdbinit, so that this happens automatically whenever i start gumstix-gdb from ~/gumstix/gumstix-buildroot-1614

update: 2009-02-04
This issue was still happening. the following .gdbinit solved it for me:


set solib-absolute-prefix /dev/null
set solib-search-path /home/hypo/gumstix/gumstix-buildroot-1614/build_arm_nofpu/staging_dir/lib/
target remote 192.168.1.100:2000

No comments: