This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA/commit] Check library name rather than member name when rereading symbols.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]