[patch] STT_GNU_IFUNC support

Jan Kratochvil jan.kratochvil@redhat.com
Mon Feb 15 18:49:00 GMT 2010


On Mon, 15 Feb 2010 19:40:50 +0100, Daniel Jacobowitz wrote:
> On Sun, Feb 14, 2010 at 09:35:12PM +0100, Jan Kratochvil wrote:
> > This implementation resolves ifunc in an uncached way by an inferior call any
> > time the symbol resolution is needed.  It does not try to pick out the jump
> > address value from ".got.plt" as filled there by ld.so.  (GDB stepping into
> > library functions also does not try to do so.)
> 
> Do you mean that "print strcmp" or "break strcmp" is now going to do
> an inferior call?

Yes.


> Inferior calls are very slow, and they can go wrong (pending signals,
> misbehaving programs, etc).  I believe we should make an effort to
> minimize them.

Caching may not help as during first "print strcmp" it may be called neither
by the inferior nor by gdb yet.  Making the "print strcmp" output dependent on
whether "strcmp" has been already called looks too non-deterministic to me.
Displaying the indirect function resolver on "print strcmp" looks to me as
needlessly complex for normal application developers.


> For user messages, maybe we should call these "indirect functions";
> that's what ifunc is short for.

OK.


Thanks,
Jan



More information about the Gdb-patches mailing list