* 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 <jhb@FreeBSD.org>
+
+ * 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 <jhb@FreeBSD.org>
* sparc64-linux-tdep.c (sparc64_linux_handle_segmentation_fault):
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;
/* 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 */
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));
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)
{
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. */
# 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.
}
}
-/* 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)
{
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");