public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
From: gdb-buildbot@sergiodj.net
To: gdb-testers@sourceware.org
Subject: [binutils-gdb] gdbserver: turn prepare_to_access_memory & done_accessing_memory into methods
Date: Fri, 28 Feb 2020 19:58:00 -0000	[thread overview]
Message-ID: <79b4408780b27eeb60de7f3fe10bc654dddcf067@gdb-build> (raw)

*** TEST RESULTS FOR COMMIT 79b4408780b27eeb60de7f3fe10bc654dddcf067 ***

commit 79b4408780b27eeb60de7f3fe10bc654dddcf067
Author:     Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
AuthorDate: Mon Feb 17 16:11:53 2020 +0100
Commit:     Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
CommitDate: Thu Feb 20 17:35:05 2020 +0100

    gdbserver: turn prepare_to_access_memory & done_accessing_memory into methods
    
    gdbserver/ChangeLog:
    2020-02-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
    
            Turn process_stratum_target's prepare_to_access_memory and
            done_accessing_memory ops into methods of process_target.
    
            * target.h (struct process_stratum_target): Remove the target ops.
            (class process_target): Add the target ops.
            * target.cc (process_target::prepare_to_access_memory): Define.
            (process_target::done_accessing_memory): Define.
            (prepare_to_access_memory): Update.
            (done_accessing_memory): Update.
    
            Update the derived classes and callers below.
    
            * linux-low.cc (linux_target_ops): Update.
            (linux_prepare_to_access_memory): Turn into ...
            (linux_process_target::prepare_to_access_memory): ... this.
            (linux_done_accessing_memory): Turn into ...
            (linux_process_target::done_accessing_memory): ... this.
            * linux-low.h (class linux_process_target): Update.
            * lynx-low.cc (lynx_target_ops): Update.
            * nto-low.cc (nto_target_ops): Update.
            * win32-low.cc (win32_target_ops): Update.

diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog
index 73adc6542a..d41539bc81 100644
--- a/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,3 +1,27 @@
+2020-02-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	Turn process_stratum_target's prepare_to_access_memory and
+	done_accessing_memory ops into methods of process_target.
+
+	* target.h (struct process_stratum_target): Remove the target ops.
+	(class process_target): Add the target ops.
+	* target.cc (process_target::prepare_to_access_memory): Define.
+	(process_target::done_accessing_memory): Define.
+	(prepare_to_access_memory): Update.
+	(done_accessing_memory): Update.
+
+	Update the derived classes and callers below.
+
+	* linux-low.cc (linux_target_ops): Update.
+	(linux_prepare_to_access_memory): Turn into ...
+	(linux_process_target::prepare_to_access_memory): ... this.
+	(linux_done_accessing_memory): Turn into ...
+	(linux_process_target::done_accessing_memory): ... this.
+	* linux-low.h (class linux_process_target): Update.
+	* lynx-low.cc (lynx_target_ops): Update.
+	* nto-low.cc (nto_target_ops): Update.
+	* win32-low.cc (win32_target_ops): Update.
+
 2020-02-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
 
 	Turn process_stratum_target's fetch_registers and store_registers
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 7cf7d90fdb..6f408ad933 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -6505,8 +6505,8 @@ linux_unpause_all (int unfreeze)
   unstop_all_lwps (unfreeze, NULL);
 }
 
-static int
-linux_prepare_to_access_memory (void)
+int
+linux_process_target::prepare_to_access_memory ()
 {
   /* Neither ptrace nor /proc/PID/mem allow accessing memory through a
      running LWP.  */
@@ -6515,8 +6515,8 @@ linux_prepare_to_access_memory (void)
   return 0;
 }
 
-static void
-linux_done_accessing_memory (void)
+void
+linux_process_target::done_accessing_memory ()
 {
   /* Neither ptrace nor /proc/PID/mem allow accessing memory through a
      running LWP.  */
@@ -7359,8 +7359,6 @@ linux_get_hwcap2 (int wordsize)
 static linux_process_target the_linux_target;
 
 static process_stratum_target linux_target_ops = {
-  linux_prepare_to_access_memory,
-  linux_done_accessing_memory,
   linux_read_memory,
   linux_write_memory,
   linux_look_up_symbols,
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index 85b5c8a62d..2b7b357ba6 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -295,6 +295,10 @@ public:
   void fetch_registers (regcache *regcache, int regno) override;
 
   void store_registers (regcache *regcache, int regno) override;
+
+  int prepare_to_access_memory () override;
+
+  void done_accessing_memory () override;
 };
 
 #define get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr)))
diff --git a/gdbserver/lynx-low.cc b/gdbserver/lynx-low.cc
index 5c46567f9e..e243764a86 100644
--- a/gdbserver/lynx-low.cc
+++ b/gdbserver/lynx-low.cc
@@ -727,8 +727,6 @@ static lynx_process_target the_lynx_target;
 /* The LynxOS target_ops vector.  */
 
 static process_stratum_target lynx_target_ops = {
-  NULL,  /* prepare_to_access_memory */
-  NULL,  /* done_accessing_memory */
   lynx_read_memory,
   lynx_write_memory,
   NULL,  /* look_up_symbols */
diff --git a/gdbserver/nto-low.cc b/gdbserver/nto-low.cc
index a051f36eec..36bd40c20d 100644
--- a/gdbserver/nto-low.cc
+++ b/gdbserver/nto-low.cc
@@ -941,8 +941,6 @@ nto_sw_breakpoint_from_kind (int kind, int *size)
 static nto_process_target the_nto_target;
 
 static process_stratum_target nto_target_ops = {
-  NULL, /* prepare_to_access_memory */
-  NULL, /* done_accessing_memory */
   nto_read_memory,
   nto_write_memory,
   NULL, /* nto_look_up_symbols */
diff --git a/gdbserver/target.cc b/gdbserver/target.cc
index b73c4465f1..f88e9faf19 100644
--- a/gdbserver/target.cc
+++ b/gdbserver/target.cc
@@ -57,14 +57,9 @@ prepare_to_access_memory (void)
      it.  */
   prev_general_thread = cs.general_thread;
 
-  if (the_target->prepare_to_access_memory != NULL)
-    {
-      int res;
-
-      res = the_target->prepare_to_access_memory ();
-      if (res != 0)
-	return res;
-    }
+  int res = the_target->pt->prepare_to_access_memory ();
+  if (res != 0)
+    return res;
 
   for_each_thread (prev_general_thread.pid (), [&] (thread_info *thread)
     {
@@ -114,8 +109,7 @@ done_accessing_memory (void)
 {
   client_state &cs = get_client_state ();
 
-  if (the_target->done_accessing_memory != NULL)
-    the_target->done_accessing_memory ();
+  the_target->pt->done_accessing_memory ();
 
   /* Restore the previous selected thread.  */
   cs.general_thread = prev_general_thread;
@@ -402,3 +396,15 @@ process_target::post_create_inferior ()
 {
   /* Nop.  */
 }
+
+int
+process_target::prepare_to_access_memory ()
+{
+  return 0;
+}
+
+void
+process_target::done_accessing_memory ()
+{
+  /* Nop.  */
+}
diff --git a/gdbserver/target.h b/gdbserver/target.h
index e42c7509bb..e89ddbb004 100644
--- a/gdbserver/target.h
+++ b/gdbserver/target.h
@@ -70,23 +70,6 @@ class process_target;
    shared code.  */
 struct process_stratum_target
 {
-  /* Prepare to read or write memory from the inferior process.
-     Targets use this to do what is necessary to get the state of the
-     inferior such that it is possible to access memory.
-
-     This should generally only be called from client facing routines,
-     such as gdb_read_memory/gdb_write_memory, or the GDB breakpoint
-     insertion routine.
-
-     Like `read_memory' and `write_memory' below, returns 0 on success
-     and errno on failure.  */
-
-  int (*prepare_to_access_memory) (void);
-
-  /* Undo the effects of prepare_to_access_memory.  */
-
-  void (*done_accessing_memory) (void);
-
   /* Read memory from the inferior process.  This should generally be
      called through read_inferior_memory, which handles breakpoint shadowing.
 
@@ -480,6 +463,21 @@ public:
 
      If REGNO is -1, store all registers; otherwise, store at least REGNO.  */
   virtual void store_registers (regcache *regcache, int regno) = 0;
+
+  /* Prepare to read or write memory from the inferior process.
+     Targets use this to do what is necessary to get the state of the
+     inferior such that it is possible to access memory.
+
+     This should generally only be called from client facing routines,
+     such as gdb_read_memory/gdb_write_memory, or the GDB breakpoint
+     insertion routine.
+
+     Like `read_memory' and `write_memory' below, returns 0 on success
+     and errno on failure.  */
+  virtual int prepare_to_access_memory ();
+
+  /* Undo the effects of prepare_to_access_memory.  */
+  virtual void done_accessing_memory ();
 };
 
 extern process_stratum_target *the_target;
diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc
index 9e4e4c368c..4a8e64d11a 100644
--- a/gdbserver/win32-low.cc
+++ b/gdbserver/win32-low.cc
@@ -1837,8 +1837,6 @@ win32_sw_breakpoint_from_kind (int kind, int *size)
 static win32_process_target the_win32_target;
 
 static process_stratum_target win32_target_ops = {
-  NULL, /* prepare_to_access_memory */
-  NULL, /* done_accessing_memory */
   win32_read_inferior_memory,
   win32_write_inferior_memory,
   NULL, /* lookup_symbols */


             reply	other threads:[~2020-02-28 19:32 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-28 19:58 gdb-buildbot [this message]
2020-02-28 19:41 ` Failures on Ubuntu-Aarch64-native-extended-gdbserver-m64, branch master gdb-buildbot
2020-02-28 21:51 ` Failures on Ubuntu-Aarch64-native-gdbserver-m64, " gdb-buildbot
2020-02-29 19:46 ` Failures on Fedora-x86_64-cc-with-index, " gdb-buildbot
2020-02-29 20:24 ` Failures on Fedora-x86_64-m64, " gdb-buildbot
2020-02-29 20:33 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " gdb-buildbot
2020-02-29 21:18 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " gdb-buildbot
2020-03-01  6:27 ` Failures on Fedora-x86_64-native-gdbserver-m64, " gdb-buildbot

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=79b4408780b27eeb60de7f3fe10bc654dddcf067@gdb-build \
    --to=gdb-buildbot@sergiodj.net \
    --cc=gdb-testers@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).