wrong lib address

xchen
2007-08-30T10:21:01Z

Hi

I use gdbserver to debug my program. The problem is gdb can't load
library file correctly.
Belowed is snapshot for my debug process. I think I have set the
right path for loading library file.

metrodev:/home/chenxi # ppc_8xx-ldd metro.elf
libpthread.so.0 =>
/opt/montavista/pro/devkit/ppc/8xx/target/lib/libpthread.so.0 (0xdead1000)
librt.so.1 =>
/opt/montavista/pro/devkit/ppc/8xx/target/lib/librt.so.1 (0xdead2000)
libstdc++.so.5 =>
/opt/montavista/pro/devkit/ppc/8xx/target/usr/lib/libstdc++.so.5
(0xdead3000)
libm.so.6 => /opt/montavista/pro/devkit/ppc/8xx/target/lib/libm.so.6
(0xdead4000)
libgcc_s.so.1 =>
/opt/montavista/pro/devkit/ppc/8xx/target/lib/libgcc_s.so.1 (0xdead5000)
libc.so.6 => /opt/montavista/pro/devkit/ppc/8xx/target/lib/libc.so.6
(0xdead6000)
/lib/ld.so.1 =>
/opt/montavista/pro/devkit/ppc/8xx/target/lib/ld.so.1 (0xdead7000)

metrodev:/home/chenxi/cpu_io_v106_af/cpu_v106_af/cpu_v/Debug # ppc-linux-gdb
metro.elf
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 "--host=i686-pc-linux-gnu --target=ppc-linux"...
===========================================================
(gdb) set solib-absolute-prefix /opt/montavista/pro/devkit/ppc/8xx/target/
==============================================================
(gdb) target remote 192.168.70.99:1234
Remote debugging using 192.168.70.99:1234
_start () at ../sysdeps/powerpc/powerpc32/dl-start.S:33
33 ../sysdeps/powerpc/powerpc32/dl-start.S: No such file or directory.
in ../sysdeps/powerpc/powerpc32/dl-start.S
Current language: auto; currently asm
(gdb) b main
Breakpoint 1 at 0x1000a5cc: file ../working/src/root.cpp, line 232.
(gdb) list
28 in ../sysdeps/powerpc/powerpc32/dl-start.S
(gdb) continue
Continuing.
Error while mapping shared library sections:
/mnt/cf/shared/lib/libpthread.so.0: No such file or directory.
Error while mapping shared library sections:
/mnt/cf/shared/lib/librt.so.1: No such file or directory.
Error while mapping shared library sections:
/mnt/cf/shared/lib/libstdc++.so.5: No such file or directory.
Error while mapping shared library sections:
/mnt/cf/shared/lib/libm.so.6: No such file or directory.

Breakpoint 1, main (argc=2147483016, argv=0xfc32da4) at
../working/src/root.cpp:232
232 pthread_attr_init( &init_attr );
Current language: auto; currently c++
(gdb) info sharedlibrary
From To Syms Read Shared Object Library
0x30001f90 0x30013760 Yes
/opt/montavista/pro/devkit/ppc/8xx/target/lib/ld.so.1
No /mnt/cf/shared/lib/libpthread.so.0
No /mnt/cf/shared/lib/librt.so.1
No /mnt/cf/shared/lib/libstdc++.so.5
No /mnt/cf/shared/lib/libm.so.6
0x0fd7da40 0x0fd86f3c Yes
/opt/montavista/pro/devkit/ppc/8xx/target/lib/libgcc_s.so.1
0x0fc32ad0 0x0fd3a1fc Yes
/opt/montavista/pro/devkit/ppc/8xx/target/lib/libc.so.6
(gdb)

I don't know why the path changed to /mnt/cf/shared/lib, this is my target
lib path. Maybe I create the related dir can solve the problem, but I am
glad to know the essential reason and the related solution.

Thx,
Xi