Re: RFA: [symfile.c} Fix to symbol_file_add()

Fernando Nasser
2001-05-01T05:51:00Z

Elena Zannoni wrote:
>
> > However, the bit:
> > > > + /* Getting new symbols may change our opinion about
> > > > + what is frameless. */
> > > > + reinit_frame_cache ();
> >
> > should _always_ be done, whenever we load new symbols.
> >
>
> I need to understand better what happens with shared libraries.
> SOLIB_ADD ends up calling this. I see it used in the attach command
> and in this case a reinit_frame_cache is OK, so is for the case in
> sol-thread.c but what about the other calls?
>

The comment "Getting new symbols may change our opinion about what is
frameless." basically answers your question. GDB is much more reliable
at figuring out where the prologue ends when symbols are available. If
you are stopped inside a function (in a shared library) and you did not
had the symbols when you created the frame cache, you did a less job
than you could have done if you had symbols.

That is why the frame cache is always reset, so the frames can be
reconstructed with mode information and, thus, more precisely.