This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: (Rising Spam Alert)Re: wrong lib address
- From: "xchen" <xchen at sunrisetelecom dot com dot cn>
- To: "'Daniel Jacobowitz'" <drow at false dot org>
- Cc: <gdb at sourceware dot org>
- Date: Mon, 3 Sep 2007 12:16:50 +0800
- Subject: Re: (Rising Spam Alert)Re: wrong lib address
Hi Daniel,
You said I need the libraries available in the same path for both
host and target. But gdb can load ld.so.1 successfully , in fact my target
doesn't have the path such as
/opt/montavista/pro/devkit/ppc/8xx/target/lib, ld.so.1 was storaged in /lib
for target. It means gdb load the same library use different path.
Why gdb can't load other library use different path.
BTW /mnt/cf/shared/lib was added in the ld.so.conf for target. I
guess $(CROSS_COMPILE)/lib is the default library path for montavista, in
target, $(CROSS_COMPILE) is a empty string, so for gdb both
/opt/montavista/pro/devkit/ppc/8xx/target/lib and /lib are equle to
$(CROSS_COMPILE)/lib. But when I use echo $CROSS_COMPILE in host,
Last login: Mon Sep 3 10:24:10 2007 from 192.168.70.183
Have a lot of fun...
metrodev:~ # echo $CROSS_COMPILE
metrodev:~ #
It displays empty string
Could you give me directions.
Thx,
Xi
(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-owner@sourceware.org [mailto:gdb-owner@sourceware.org] 代表
Daniel Jacobowitz
发送时间: 2007年8月30日 20:15
收件人: xchen
抄送: gdb@sourceware.org
主题: (Rising Spam Alert)Re: wrong lib address
On Thu, Aug 30, 2007 at 06:21:12PM +0800, xchen wrote:
> 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.
That means /mnt/cf/shared is the path on your target where these libraries
are found. You need the libraries available in the same path (plus sysroot)
on your host that is used on your target. Try running ldd on the target
instead of the cross ldd.
--
Daniel Jacobowitz
CodeSourcery