This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit] Re: [patch 6/7] STT_GNU_IFUNC resolution via breakpoints
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 28 Mar 2011 22:30:28 +0200
- Subject: [commit] Re: [patch 6/7] STT_GNU_IFUNC resolution via breakpoints
- References: <20110319211653.GG30867@host1.jankratochvil.net>
On Sat, 19 Mar 2011 22:16:53 +0100, Jan Kratochvil wrote:
> gdb/
> 2011-03-19 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> Support resolution of STT_GNU_IFUNC via breakpoints.
> * breakpoint.c (print_it_typical): Support bp_gnu_ifunc_resolver and
> bp_gnu_ifunc_resolver_return.
> (bpstat_what): Rename parameter to bs_head, new variable bs, adjust
> the loop. Support bp_gnu_ifunc_resolver and
> bp_gnu_ifunc_resolver_return. New comment after the loop. New loop
> for bp_gnu_ifunc_resolver and bp_gnu_ifunc_resolver_return
> breakpoints.
> (bptype_string, print_one_breakpoint_location): Support
> bp_gnu_ifunc_resolver and bp_gnu_ifunc_resolver_return.
> (user_settable_breakpoint): Return true also for
> bp_gnu_ifunc_resolver.
> (allocate_bp_location): Support bp_gnu_ifunc_resolver and
> bp_gnu_ifunc_resolver_return.
> (set_breakpoint_location_function): New parameter explicit_loc,
> describe it. Call find_pc_partial_function_gnu_ifunc with new
> variable IS_GNU_IFUNC and adjust the address for STT_GNU_IFUNC if
> EXPLICIT_LOC is not set.
> (set_raw_breakpoint): Set EXPLICIT_LOC for
> set_breakpoint_location_function.
> (clone_momentary_breakpoint): Use true for EXPLICIT_LOC of
> set_breakpoint_location_function.
> (mention): Support bp_gnu_ifunc_resolver and
> bp_gnu_ifunc_resolver_return.
> (add_location_to_breakpoint): Set EXPLICIT_LOC for
> set_breakpoint_location_function.
> (update_breakpoint_locations): Remove static.
> (breakpoint_re_set_one): Support bp_gnu_ifunc_resolver and
> bp_gnu_ifunc_resolver_return.
> * breakpoint.h (enum bptype): New fields bp_gnu_ifunc_resolver and
> bp_gnu_ifunc_resolver_return.
> (update_breakpoint_locations): New declaration.
> * elfread.c: Include gdbthread.h and regcache.h.
> (elf_gnu_ifunc_resolver_stop, elf_gnu_ifunc_resolver_return_stop): New
> functions.
> (elf_gnu_ifunc_fns): Install them.
> * minsyms.c (stub_gnu_ifunc_resolver_stop)
> (stub_gnu_ifunc_resolver_return_stop): New functions.
> (stub_gnu_ifunc_fns): Install them.
> * symtab.h (struct gnu_ifunc_fns): New fields gnu_ifunc_resolver_stop
> and gnu_ifunc_resolver_return_stop.
> (gnu_ifunc_resolver_stop, gnu_ifunc_resolver_return_stop): New.
Checked in:
http://sourceware.org/ml/gdb-cvs/2011-03/msg00314.html
Regards,
Jan