This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/commit] Check library name rather than member name when rereading symbols.
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: Joel Brobecker <brobecker at adacore dot com>
- Date: Wed, 21 Apr 2010 16:40:21 +0100
- Subject: Re: [RFA/commit] Check library name rather than member name when rereading symbols.
- References: <1271863083-15509-1-git-send-email-brobecker@adacore.com>
On Wednesday 21 April 2010 16:18:03, Joel Brobecker wrote:
> Hello,
>
> On Darwin, we have lots of complaints being emitted when restarting
> a program:
>
> (gdb) start
> `a-except.o' has disappeared; keeping its symbols.
> `unwind-dw2.o' has disappeared; keeping its symbols.
> `s-except.o' has disappeared; keeping its symbols.
> `s-traceb.o' has disappeared; keeping its symbols.
>
> These object files are part of the GNAT runtime, and were never available.
> The warning comes from the fact that we're checking whether the .o files
> in the GNAT shared runtime have changed whereas we should be checking
> whether the GNAT shared library itself has changed.
>
> This patch implements this. Although it is really only useful on a platform
> such as Darwin (debug info stored in .o files), we believe that this is
> the right thing to do in general. This change should be a noop for all
> the other platforms in any case.
Makes sense to me. And it's wonderful to get rid of another
#ifdef DEPRECATED_IBM6000_TARGET instance. Though, isn't the
comment's mention of "shared" a bit misleading? Isn't this about static
libraries / archives? Does this really also apply to shared
libraries?
> -#ifdef DEPRECATED_IBM6000_TARGET
> /* If this object is from a shared library, then you should
> stat on the library name, not member name. */
>
> if (objfile->obfd->my_archive)
> res = stat (objfile->obfd->my_archive->filename, &new_statbuf);
> else
> -#endif
> res = stat (objfile->name, &new_statbuf);
> if (res != 0)
> {
>
--
Pedro Alves