From 4cec0c66899aed1eff0c5ef844e9bf658ab2b2af Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 21 Jul 2020 17:28:16 -0700 Subject: [PATCH] Retire the now-unused gdbarch handle_segmentation_fault hook. * gdbarch.c: Regenerate. * gdbarch.h: Regenerate. * gdbarch.sh (handle_segmentation_fault): Remove method. * infrun.c (handle_segmentation_fault): Remove. (print_signal_received_reason): Remove call to handle_segmentation_fault. --- gdb/ChangeLog | 9 +++++++++ gdb/gdbarch.c | 32 -------------------------------- gdb/gdbarch.h | 11 ----------- gdb/gdbarch.sh | 6 ------ gdb/infrun.c | 17 ----------------- 5 files changed, 9 insertions(+), 66 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c06471ef642..05e43901ae1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2020-07-21 John Baldwin + + * gdbarch.c: Regenerate. + * gdbarch.h: Regenerate. + * gdbarch.sh (handle_segmentation_fault): Remove method. + * infrun.c (handle_segmentation_fault): Remove. + (print_signal_received_reason): Remove call to + handle_segmentation_fault. + 2020-07-21 John Baldwin * sparc64-linux-tdep.c (sparc64_linux_handle_segmentation_fault): diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index d393e7a7345..fd5b0301ab0 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -191,7 +191,6 @@ struct gdbarch int num_pseudo_regs; gdbarch_ax_pseudo_register_collect_ftype *ax_pseudo_register_collect; gdbarch_ax_pseudo_register_push_stack_ftype *ax_pseudo_register_push_stack; - gdbarch_handle_segmentation_fault_ftype *handle_segmentation_fault; gdbarch_report_signal_info_ftype *report_signal_info; int sp_regnum; int pc_regnum; @@ -556,7 +555,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of num_pseudo_regs, invalid_p == 0 */ /* Skip verify of ax_pseudo_register_collect, has predicate. */ /* Skip verify of ax_pseudo_register_push_stack, has predicate. */ - /* Skip verify of handle_segmentation_fault, has predicate. */ /* Skip verify of report_signal_info, has predicate. */ /* Skip verify of sp_regnum, invalid_p == 0 */ /* Skip verify of pc_regnum, invalid_p == 0 */ @@ -1088,12 +1086,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) fprintf_unfiltered (file, "gdbarch_dump: half_format = %s\n", pformat (gdbarch->half_format)); - fprintf_unfiltered (file, - "gdbarch_dump: gdbarch_handle_segmentation_fault_p() = %d\n", - gdbarch_handle_segmentation_fault_p (gdbarch)); - fprintf_unfiltered (file, - "gdbarch_dump: handle_segmentation_fault = <%s>\n", - host_address_to_string (gdbarch->handle_segmentation_fault)); fprintf_unfiltered (file, "gdbarch_dump: has_dos_based_file_system = %s\n", plongest (gdbarch->has_dos_based_file_system)); @@ -2097,30 +2089,6 @@ set_gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, gdbarch->ax_pseudo_register_push_stack = ax_pseudo_register_push_stack; } -int -gdbarch_handle_segmentation_fault_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->handle_segmentation_fault != NULL; -} - -void -gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch, struct ui_out *uiout) -{ - gdb_assert (gdbarch != NULL); - gdb_assert (gdbarch->handle_segmentation_fault != NULL); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_handle_segmentation_fault called\n"); - gdbarch->handle_segmentation_fault (gdbarch, uiout); -} - -void -set_gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch, - gdbarch_handle_segmentation_fault_ftype handle_segmentation_fault) -{ - gdbarch->handle_segmentation_fault = handle_segmentation_fault; -} - int gdbarch_report_signal_info_p (struct gdbarch *gdbarch) { diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 9414407b04d..6c125d10aea 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -321,17 +321,6 @@ typedef int (gdbarch_ax_pseudo_register_push_stack_ftype) (struct gdbarch *gdbar extern int gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, struct agent_expr *ax, int reg); extern void set_gdbarch_ax_pseudo_register_push_stack (struct gdbarch *gdbarch, gdbarch_ax_pseudo_register_push_stack_ftype *ax_pseudo_register_push_stack); -/* Some targets/architectures can do extra processing/display of - segmentation faults. E.g., Intel MPX boundary faults. - Call the architecture dependent function to handle the fault. - UIOUT is the output stream where the handler will place information. */ - -extern int gdbarch_handle_segmentation_fault_p (struct gdbarch *gdbarch); - -typedef void (gdbarch_handle_segmentation_fault_ftype) (struct gdbarch *gdbarch, struct ui_out *uiout); -extern void gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch, struct ui_out *uiout); -extern void set_gdbarch_handle_segmentation_fault (struct gdbarch *gdbarch, gdbarch_handle_segmentation_fault_ftype *handle_segmentation_fault); - /* Some architectures can display additional information for specific signals. UIOUT is the output stream where the handler will place information. */ diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 1601879532f..5adfd29ad4d 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -414,12 +414,6 @@ M;int;ax_pseudo_register_collect;struct agent_expr *ax, int reg;ax, reg # Return -1 if something goes wrong, 0 otherwise. M;int;ax_pseudo_register_push_stack;struct agent_expr *ax, int reg;ax, reg -# Some targets/architectures can do extra processing/display of -# segmentation faults. E.g., Intel MPX boundary faults. -# Call the architecture dependent function to handle the fault. -# UIOUT is the output stream where the handler will place information. -M;void;handle_segmentation_fault;struct ui_out *uiout;uiout - # Some architectures can display additional information for specific # signals. # UIOUT is the output stream where the handler will place information. diff --git a/gdb/infrun.c b/gdb/infrun.c index e58b623954d..ca850f81c43 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -8243,20 +8243,6 @@ print_exited_reason (struct ui_out *uiout, int exitstatus) } } -/* Some targets/architectures can do extra processing/display of - segmentation faults. E.g., Intel MPX boundary faults. - Call the architecture dependent function to handle the fault. */ - -static void -handle_segmentation_fault (struct ui_out *uiout) -{ - struct regcache *regcache = get_current_regcache (); - struct gdbarch *gdbarch = regcache->arch (); - - if (gdbarch_handle_segmentation_fault_p (gdbarch)) - gdbarch_handle_segmentation_fault (gdbarch, uiout); -} - void print_signal_received_reason (struct ui_out *uiout, enum gdb_signal siggnal) { @@ -8304,9 +8290,6 @@ print_signal_received_reason (struct ui_out *uiout, enum gdb_signal siggnal) if (gdbarch_report_signal_info_p (gdbarch)) gdbarch_report_signal_info (gdbarch, uiout, siggnal); - if (siggnal == GDB_SIGNAL_SEGV) - handle_segmentation_fault (uiout); - annotate_signal_string_end (); } uiout->text (".\n"); -- 2.30.2