Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@mvista.com>
To: jorma.laaksonen@hut.fi
Cc: gdb-gnats@sources.redhat.com, gdb@sources.redhat.com
Subject: Re: gdb/633: fully qualified pathnames in solib_map_sections() and remote debugging
Date: Tue, 06 Aug 2002 06:20:00 -0000	[thread overview]
Message-ID: <20020806132047.GA16450@nevyn.them.org> (raw)
In-Reply-To: <20020806100634.11483.qmail@sources.redhat.com>

On Tue, Aug 06, 2002 at 10:06:34AM -0000, jorma.laaksonen@hut.fi wrote:
> 
> >Number:         633
> >Category:       gdb
> >Synopsis:       fully qualified pathnames in solib_map_sections() and remote debugging
> >Confidential:   no
> >Severity:       non-critical
> >Priority:       medium
> >Responsible:    unassigned
> >State:          open
> >Class:          sw-bug
> >Submitter-Id:   net
> >Arrival-Date:   Tue Aug 06 03:08:01 PDT 2002
> >Closed-Date:
> >Last-Modified:
> >Originator:     jorma.laaksonen@hut.fi
> >Release:        gdb-5.2
> >Organization:
> >Environment:
> --host=i686-pc-linux-gnu --target=arm-linux
> >Description:
> When debugging remotely an application that runs
> in another type of platform, solib_map_sections() of solib.c gets called with fully qualified pathnames
> that are correct in the target system but not necessarily
> in the host system.  Or, the host system's solib versions
> are of incorrect file format for the cross-target gdb.
> 
> When such a solib doesn't exist in host's filesystem,
> a loop of errors like
> 
> > Error while mapping shared library sections:
> > /usr/lib/libxxx.so.1: No such file or directory.
> 
> is entered.
> >How-To-Repeat:
> 
> >Fix:
> Add a variable that specifies search path for solibs
> while debugging remotely ???

There already is one :)  Two in fact.  The normal solution to this is
to set solib-absolute-prefix to point at an image of the target
filesystem.

   GLOBAL FUNCTION

   solib_open -- Find a shared library file and open it.

   SYNOPSIS

   int solib_open (char *in_patname, char **found_pathname);

   DESCRIPTION

   Global variable SOLIB_ABSOLUTE_PREFIX is used as a prefix directory
   to search for shared libraries if they have an absolute path.

   Global variable SOLIB_SEARCH_PATH is used as a prefix directory
   (or set of directories, as in LD_LIBRARY_PATH) to search for all
   shared libraries if not found in SOLIB_ABSOLUTE_PREFIX.

   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.


I think the search order needs some revision though:
 - A cross debugger should not search $PATH or $LD_LIBRARY_PATH
 - A cross debugger may, or may not, want to look for the unmodified
path; I suspect that we only want to look for unmodified relative
paths, not unmodified absolute ones.

With those changes you would have to explicitly specify the path to
DSOs in a cross debugger via solib-absolute-prefix and
solib-search-path, and GDB would stop picking up the host libpthread.so
and making gdbserver segfault...  any comments from the list?

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer


       reply	other threads:[~2002-08-06 13:20 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20020806100634.11483.qmail@sources.redhat.com>
2002-08-06  6:20 ` Daniel Jacobowitz [this message]
2002-08-09 16:12   ` Kevin Buettner
2002-08-11 20:25     ` Daniel Jacobowitz
2002-08-12  4:18       ` Jorma Laaksonen
2002-08-12  7:28       ` Andrew Cagney
2002-08-12  7:37         ` Daniel Jacobowitz
2002-08-12  8:07           ` Andrew Cagney
2002-08-12  8:48             ` Kevin Buettner
2002-08-12  8:55               ` Daniel Jacobowitz
2002-08-12  9:20                 ` Kevin Buettner
2002-08-12  9:29                   ` Daniel Jacobowitz
2002-08-12  9:20               ` Andrew Cagney
2002-08-12  9:31                 ` Daniel Jacobowitz
2002-08-12  9:40                 ` Kevin Buettner
2002-08-12  9:53                   ` GDB functionalities for debugging Elf core dump Lucy Zhang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020806132047.GA16450@nevyn.them.org \
    --to=drow@mvista.com \
    --cc=gdb-gnats@sources.redhat.com \
    --cc=gdb@sources.redhat.com \
    --cc=jorma.laaksonen@hut.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox