public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: John Baldwin <jhb@FreeBSD.org>
To: gdb-patches@sourceware.org
Subject: [PATCH v2 04/12] Add an x86_fbsd_nat_target mixin class for FreeBSD x86 native targets.
Date: Wed, 16 Mar 2022 13:19:15 -0700	[thread overview]
Message-ID: <20220316201923.89694-5-jhb@FreeBSD.org> (raw)
In-Reply-To: <20220316201923.89694-1-jhb@FreeBSD.org>

This class implements debug register support common between the i386
and amd64 native targets.

While here, remove #ifdef's for HAVE_PT_GETDBREGS in FreeBSD-specific
code.  The ptrace request has been present on FreeBSD x86
architectures since 4.0 (released in March 2000).  The last FreeBSD
release without this support is 3.5 released in June 2000.
---
 gdb/amd64-fbsd-nat.c | 20 ++------------------
 gdb/i386-fbsd-nat.c  | 20 ++------------------
 gdb/x86-fbsd-nat.h   | 34 ++++++++++++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 36 deletions(-)
 create mode 100644 gdb/x86-fbsd-nat.h

diff --git a/gdb/amd64-fbsd-nat.c b/gdb/amd64-fbsd-nat.c
index 368f4c10786..d125d582a21 100644
--- a/gdb/amd64-fbsd-nat.c
+++ b/gdb/amd64-fbsd-nat.c
@@ -29,26 +29,20 @@
 #include <sys/user.h>
 #include <machine/reg.h>
 
-#include "fbsd-nat.h"
 #include "amd64-tdep.h"
 #include "amd64-fbsd-tdep.h"
 #include "amd64-nat.h"
 #include "x86-nat.h"
 #include "gdbsupport/x86-xstate.h"
-#include "x86-bsd-nat.h"
+#include "x86-fbsd-nat.h"
 
-class amd64_fbsd_nat_target final
-  : public x86bsd_nat_target<fbsd_nat_target>
+class amd64_fbsd_nat_target final : public x86_fbsd_nat_target
 {
 public:
   void fetch_registers (struct regcache *, int) override;
   void store_registers (struct regcache *, int) override;
 
   const struct target_desc *read_description () override;
-
-#if defined(HAVE_PT_GETDBREGS)
-  bool supports_stopped_by_hw_breakpoint () override;
-#endif
 };
 
 static amd64_fbsd_nat_target the_amd64_fbsd_nat_target;
@@ -348,16 +342,6 @@ amd64_fbsd_nat_target::read_description ()
     return i386_target_description (X86_XSTATE_SSE_MASK, true);
 }
 
-#if defined(HAVE_PT_GETDBREGS)
-/* Implement the supports_stopped_by_hw_breakpoints method.  */
-
-bool
-amd64_fbsd_nat_target::supports_stopped_by_hw_breakpoint ()
-{
-  return true;
-}
-#endif
-
 void _initialize_amd64fbsd_nat ();
 void
 _initialize_amd64fbsd_nat ()
diff --git a/gdb/i386-fbsd-nat.c b/gdb/i386-fbsd-nat.c
index 023f24bab37..4b8ba8b598f 100644
--- a/gdb/i386-fbsd-nat.c
+++ b/gdb/i386-fbsd-nat.c
@@ -27,16 +27,14 @@
 #include <sys/sysctl.h>
 #include <sys/user.h>
 
-#include "fbsd-nat.h"
 #include "i386-tdep.h"
 #include "i386-fbsd-tdep.h"
 #include "i387-tdep.h"
 #include "x86-nat.h"
 #include "gdbsupport/x86-xstate.h"
-#include "x86-bsd-nat.h"
+#include "x86-fbsd-nat.h"
 
-class i386_fbsd_nat_target final
-  : public x86bsd_nat_target<fbsd_nat_target>
+class i386_fbsd_nat_target final : public x86_fbsd_nat_target
 {
 public:
   void fetch_registers (struct regcache *, int) override;
@@ -45,10 +43,6 @@ class i386_fbsd_nat_target final
   const struct target_desc *read_description () override;
 
   void resume (ptid_t, int, enum gdb_signal) override;
-
-#if defined(HAVE_PT_GETDBREGS)
-  bool supports_stopped_by_hw_breakpoint () override;
-#endif
 };
 
 static i386_fbsd_nat_target the_i386_fbsd_nat_target;
@@ -361,16 +355,6 @@ i386_fbsd_nat_target::read_description ()
   return i386_target_description (X86_XSTATE_X87_MASK, true);
 }
 
-#if defined(HAVE_PT_GETDBREGS)
-/* Implement the supports_stopped_by_hw_breakpoints method.  */
-
-bool
-i386_fbsd_nat_target::supports_stopped_by_hw_breakpoint ()
-{
-  return true;
-}
-#endif
-
 void _initialize_i386fbsd_nat ();
 void
 _initialize_i386fbsd_nat ()
diff --git a/gdb/x86-fbsd-nat.h b/gdb/x86-fbsd-nat.h
new file mode 100644
index 00000000000..f9d3514aab4
--- /dev/null
+++ b/gdb/x86-fbsd-nat.h
@@ -0,0 +1,34 @@
+/* Native-dependent code for FreeBSD x86.
+
+   Copyright (C) 2022 Free Software Foundation, Inc.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef X86_FBSD_NAT_H
+#define X86_FBSD_NAT_H
+
+#include "fbsd-nat.h"
+#include "x86-bsd-nat.h"
+
+/* A prototype FreeBSD/x86 target.  */
+
+class x86_fbsd_nat_target : public x86bsd_nat_target<fbsd_nat_target>
+{
+  bool supports_stopped_by_hw_breakpoint () override
+  { return true; }
+};
+
+#endif /* x86-bsd-nat.h */
-- 
2.34.1


  parent reply	other threads:[~2022-03-16 20:19 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-16 20:19 [PATCH v2 00/12] FreeBSD/aarch64 hardware watchpoint support John Baldwin
2022-03-16 20:19 ` [PATCH v2 01/12] Remove USE_SIGTRAP_SIGINFO condition for FreeBSD/x86 debug regs support John Baldwin
2022-03-16 20:19 ` [PATCH v2 02/12] x86-nat: Use an unordered_map to store per-pid debug reg state John Baldwin
2022-03-21 18:07   ` Pedro Alves
2022-03-16 20:19 ` [PATCH v2 03/12] x86-nat: Add x86_lookup_debug_reg_state John Baldwin
2022-03-21 18:10   ` Pedro Alves
2022-03-16 20:19 ` John Baldwin [this message]
2022-03-16 20:19 ` [PATCH v2 05/12] fbsd-nat: Add a low_new_fork virtual method John Baldwin
2022-03-16 20:19 ` [PATCH v2 06/12] x86-fbsd-nat: Copy debug register state on fork John Baldwin
2022-03-16 20:19 ` [PATCH v2 07/12] nat: Split out platform-independent aarch64 debug register support John Baldwin
2022-03-17 15:37   ` Luis Machado
2022-03-16 20:19 ` [PATCH v2 08/12] aarch64: Add an aarch64_nat_target mixin class John Baldwin
2022-03-17 15:35   ` Luis Machado
2022-03-16 20:19 ` [PATCH v2 09/12] fbsd-nat: Add helper routine to fetch siginfo_t for a ptid John Baldwin
2022-03-16 20:19 ` [PATCH v2 10/12] fbsd-nat: Add a low_delete_thread virtual method John Baldwin
2022-03-16 20:19 ` [PATCH v2 11/12] fbsd-nat: Add a low_prepare_to_resume " John Baldwin
2022-03-16 20:19 ` [PATCH v2 12/12] Add support for hardware breakpoints/watchpoints on FreeBSD/Aarch64 John Baldwin
2022-03-30 15:23 ` [PATCH v2 00/12] FreeBSD/aarch64 hardware watchpoint support Luis Machado
2022-03-30 15:31   ` Luis Machado

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220316201923.89694-5-jhb@FreeBSD.org \
    --to=jhb@freebsd.org \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).