This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: set env affects host?
- From: Graeme Peterson <gp at qnx dot com>
- To: gdb at sources dot redhat dot com
- Date: Wed, 13 Nov 2002 17:41:26 -0500 (EST)
- Subject: Re: set env affects host?
Well, I think I have answered my own question by checking in the
source. I found a comment in solib.c for solib_open that says that solib
symbols are found in the inferior's LD_LIBRARY_PATH, and never in the
host's. So I guess that is that. :-)
Search order:
* If path is absolute, look in SOLIB_ABSOLUTE_PREFIX.
* If path is absolute or relative, look for it literally (unmodified).
* Look in SOLIB_SEARCH_PATH.
* Look in inferior's $PATH.
* Look in inferior's $LD_LIBRARY_PATH.
Anyone care to comment on the rationale behind the behavior? Clearly it
seemed reasonable to me to find the solibs for symbols in the host's
LD_LIBRARY_PATH, but that is wrong.
Thanks.
GP
On Wed, 13 Nov 2002, Graeme Peterson wrote:
>
> Hi, all.
>
> In gdb, according to the help, typing "set env LD_LIBRARY_PATH=<some_path>"
> should set the env var LD_LIBRARY_PATH for the inferior.
>
> In gdb-5.2.1 (on QNX6), it seems that it also affects the host, in that
> symbol information for shared objects is now searched for in that new
> LD_LIBRARY_PATH.
>
> So, on my host I have the libs in "/<target_cpu>/lib/test/". On my target
> they live in "/lib/test".
>
> In order for GDB to both load the symbols and allow the inferior to run, I
> have to have both "/lib/test" and "/<target_cpu>/lib/test" in the set env
> LD_LIBRARY_PATH command.
>
> I do not have the ability to check this with "target remote" on a non-QNX
> setup.
>
> Can anyone verify if this is expected behavior? It seems to me that the
> new LD_LIBRARY_PATH should be passed to the inferior only, and that GDB's
> environment (if solib-search-path is not set) should be used for loading
> shared object symbols.
>
> Thanks in advance.
> GP
>
>