Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: PAUL GILLIAM <pgilliam@us.ibm.com>
Cc: gdb@sources.redhat.com
Subject: Re: Chicken-or-egg problem with shared libraries
Date: Tue, 23 May 2006 23:02:00 -0000	[thread overview]
Message-ID: <20060523221114.GA8445@nevyn.them.org> (raw)
In-Reply-To: <1148418266.315.45.camel@dufur.beaverton.ibm.com>

On Tue, May 23, 2006 at 02:04:26PM -0700, PAUL GILLIAM wrote:
> In solib-svr4.c (enable_break), GDB tries to set a breakpoint in the
> dynamic loader (at "_dl_debug_state") so that shared objects can be
> tracked as they are loaded and unloaded.
> 
> The problem (on gnu/linux PowerPC64 at least) is that the dynamic loader
> is it's self a shared object and its minimal symbols are not loaded when
> "enable_break" is called.  
> 
> I have two ideas for fixing this: 1) pre-load the dynamic loaders
> minimal symbols so that when "enable_break()" is called,
> "_dl_debug_state" will be found and all is well and 2) allow
> "enable_break()" to set a pending breakpoint.

I don't think you really understand the problem you're trying to fix -
what is it, by the way?  Is it related to Alan's comment earlier
about the function descriptor lookup?

Here's how it works today:

      bfd_get_section_contents (exec_bfd, interp_sect,
                                buf, 0, interp_sect_size);

      tmp_fd  = solib_open (buf, &tmp_pathname);
      if (tmp_fd >= 0)
        tmp_bfd = bfd_fopen (tmp_pathname, gnutarget, FOPEN_RB, tmp_fd);


          sym_addr = bfd_lookup_symbol (tmp_bfd, *bkpt_namep, SEC_CODE);
          if (sym_addr != 0)
            break;

-- 
Daniel Jacobowitz
CodeSourcery


  reply	other threads:[~2006-05-23 22:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-23 22:59 PAUL GILLIAM
2006-05-23 23:02 ` Daniel Jacobowitz [this message]
2006-05-23 23:27   ` PAUL GILLIAM
2006-05-23 23:32     ` Daniel Jacobowitz
2006-05-24  1:12       ` PAUL GILLIAM

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=20060523221114.GA8445@nevyn.them.org \
    --to=drow@false.org \
    --cc=gdb@sources.redhat.com \
    --cc=pgilliam@us.ibm.com \
    /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