aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-03-28 20:29:51 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-03-28 20:29:51 +0000
commit0e30163f12712261b56fbbc145e47222ca7b535a (patch)
treeb2d43412d08b51701ee86ec852e4aacc57604273 /gdb/ChangeLog
parent07be84bf8f6a00301ce539a651d1bc717e402b8f (diff)
downloadgdb-0e30163f12712261b56fbbc145e47222ca7b535a.zip
gdb-0e30163f12712261b56fbbc145e47222ca7b535a.tar.gz
gdb-0e30163f12712261b56fbbc145e47222ca7b535a.tar.bz2
gdb/
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.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r--gdb/ChangeLog45
1 files changed, 45 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 0895286..03885dd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,50 @@
2011-03-28 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.
+
+2011-03-28 Jan Kratochvil <jan.kratochvil@redhat.com>
+
STT_GNU_IFUNC reader implementation.
* elfread.c: Include gdbtypes.h, value.h and infcall.h.
(SYMBOL_GOT_PLT_SUFFIX, elf_rel_plt_read)