[PATCH 3/5] Migrate the x86 MPX handle_segmentation_fault hook to report_signal_info.
John Baldwin
jhb@FreeBSD.org
Fri Jul 17 22:03:08 GMT 2020
gdb/ChangeLog:
* amd64-linux-tdep.c (amd64_linux_init_abi_common): Use
i386_linux_report_signal_info instead of
i386_linux_handle_segmentation_fault.
* i386-linux-tdep.c (i386_linux_handle_segmentation_fault): Rename
to i386_linux_report_signal_info and add siggnal argument.
(i386_linux_init_abi): Use i386_linux_report_signal_info instead
of i386_linux_handle_segmentation_fault.
* i386-linux-tdep.h (i386_linux_handle_segmentation_fault): Rename
to i386_linux_report_signal_info and add siggnal argument.
---
gdb/ChangeLog | 12 ++++++++++++
gdb/amd64-linux-tdep.c | 3 +--
gdb/i386-linux-tdep.c | 11 +++++------
gdb/i386-linux-tdep.h | 5 +++--
4 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a18e8d8993..ae5ee27a11 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2020-07-17 John Baldwin <jhb@FreeBSD.org>
+
+ * amd64-linux-tdep.c (amd64_linux_init_abi_common): Use
+ i386_linux_report_signal_info instead of
+ i386_linux_handle_segmentation_fault.
+ * i386-linux-tdep.c (i386_linux_handle_segmentation_fault): Rename
+ to i386_linux_report_signal_info and add siggnal argument.
+ (i386_linux_init_abi): Use i386_linux_report_signal_info instead
+ of i386_linux_handle_segmentation_fault.
+ * i386-linux-tdep.h (i386_linux_handle_segmentation_fault): Rename
+ to i386_linux_report_signal_info and add siggnal argument.
+
2020-07-17 John Baldwin <jhb@FreeBSD.org>
* corelow.c (core_target_open): Invoke gdbarch report_signal_info
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index 44ecb4e0b3..42000159bd 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -1846,8 +1846,7 @@ amd64_linux_init_abi_common(struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_process_record_signal (gdbarch, amd64_linux_record_signal);
set_gdbarch_get_siginfo_type (gdbarch, x86_linux_get_siginfo_type);
- set_gdbarch_handle_segmentation_fault (gdbarch,
- i386_linux_handle_segmentation_fault);
+ set_gdbarch_report_signal_info (gdbarch, i386_linux_report_signal_info);
}
static void
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index c576b31956..7270931f01 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -388,19 +388,19 @@ i386_canonicalize_syscall (int syscall)
#define SIG_CODE_BONDARY_FAULT 3
-/* i386 GNU/Linux implementation of the handle_segmentation_fault
+/* i386 GNU/Linux implementation of the report_signal_info
gdbarch hook. Displays information related to MPX bound
violations. */
void
-i386_linux_handle_segmentation_fault (struct gdbarch *gdbarch,
- struct ui_out *uiout)
+i386_linux_report_signal_info (struct gdbarch *gdbarch, struct ui_out *uiout,
+ enum gdb_signal siggnal)
{
/* -Wmaybe-uninitialized */
CORE_ADDR lower_bound = 0, upper_bound = 0, access = 0;
int is_upper;
long sig_code = 0;
- if (!i386_mpx_enabled ())
+ if (!i386_mpx_enabled () || siggnal != GDB_SIGNAL_SEGV)
return;
try
@@ -1073,8 +1073,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
i386_linux_get_syscall_number);
set_gdbarch_get_siginfo_type (gdbarch, x86_linux_get_siginfo_type);
- set_gdbarch_handle_segmentation_fault (gdbarch,
- i386_linux_handle_segmentation_fault);
+ set_gdbarch_report_signal_info (gdbarch, i386_linux_report_signal_info);
}
void _initialize_i386_linux_tdep ();
diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
index b54352694a..c3bfdcd830 100644
--- a/gdb/i386-linux-tdep.h
+++ b/gdb/i386-linux-tdep.h
@@ -39,8 +39,9 @@ extern uint64_t i386_linux_core_read_xcr0 (bfd *abfd);
/* Handle and display information related to the MPX bound violation
to the user. */
-extern void i386_linux_handle_segmentation_fault (struct gdbarch *gdbarch,
- struct ui_out *uiout);
+extern void i386_linux_report_signal_info (struct gdbarch *gdbarch,
+ struct ui_out *uiout,
+ enum gdb_signal siggnal);
/* Return the target description according to XCR0. */
extern const struct target_desc *i386_linux_read_description (uint64_t xcr0);
--
2.25.1
More information about the Gdb-patches
mailing list