gdbarch_skip_solib_resolver question
Mark Kettenis
mark.kettenis@xs4all.nl
Wed Jan 11 08:44:00 GMT 2012
> I noticed that gdbarch_skip_solib_resolver() invokes
> glibc_skip_solib_resolver() on x86, mips, and sh to identify
> that gdb is stepping into _dl_runtime_resolve.
>
> On PowerPC, gdbarch_skip_solib_resolver() always returns a zero.
>
> I don't see any problem with gdb stopping in _dl_runtime_resolve
> or not stepping over the routine.
>
> So, what does this mean? Is calling glibc_skip_solib_resolver()
> optional? Or is the handle_inferior_event() code so convoluted
> or intelligent that it works even when pieces are missing?
>
If I remember correctly, gdbarch_skip_solib_resolver() is just an
optimization. If it returns an address where GDB can set a breakpoint
that gets hit upon return from the dynamic linker. If
gdbarch_skip_solib_resolver() returns zero GDB just single-steps through
the dynamic linker, which works, but is a bit slower.
More information about the Gdb
mailing list