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
|