gdbserver: turn target ops 'supports_{fork,vfork,exec}_events' into methods
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Mon, 17 Feb 2020 15:11:57 +0000 (16:11 +0100)
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Thu, 20 Feb 2020 16:35:11 +0000 (17:35 +0100)
gdbserver/ChangeLog:
2020-02-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

Turn process_stratum_target's supports_fork_events,
supports_vfork_events, and supports_exec_events ops into methods
of process_target.

* target.h (struct process_stratum_target): Remove the target ops.
(class process_target): Add the target ops.
(target_supports_fork_events): Update the macro.
(target_supports_vfork_events): Update the macro.
(target_supports_exec_events): Update the macro.
* target.cc (process_target::supports_fork_events): Define.
(process_target::supports_vfork_events): Define.
(process_target::supports_exec_events): Define.

Update the derived classes and callers below.

* linux-low.cc (linux_target_ops): Update.
(linux_supports_fork_events): Turn into ...
(linux_process_target::supports_fork_events): ... this.
(linux_supports_vfork_events): Turn into ...
(linux_process_target::supports_vfork_events): ... this.
(linux_supports_exec_events): Turn into ...
(linux_process_target::supports_exec_events): ... 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.

gdbserver/ChangeLog
gdbserver/linux-low.cc
gdbserver/linux-low.h
gdbserver/lynx-low.cc
gdbserver/nto-low.cc
gdbserver/target.cc
gdbserver/target.h
gdbserver/win32-low.cc

index 66126fa1581cc3710ee11c7514d2c052eb4275f8..5b3c37f48592278bffa5b5335908c9c03fe171d3 100644 (file)
@@ -1,3 +1,32 @@
+2020-02-20  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+       Turn process_stratum_target's supports_fork_events,
+       supports_vfork_events, and supports_exec_events ops into methods
+       of process_target.
+
+       * target.h (struct process_stratum_target): Remove the target ops.
+       (class process_target): Add the target ops.
+       (target_supports_fork_events): Update the macro.
+       (target_supports_vfork_events): Update the macro.
+       (target_supports_exec_events): Update the macro.
+       * target.cc (process_target::supports_fork_events): Define.
+       (process_target::supports_vfork_events): Define.
+       (process_target::supports_exec_events): Define.
+
+       Update the derived classes and callers below.
+
+       * linux-low.cc (linux_target_ops): Update.
+       (linux_supports_fork_events): Turn into ...
+       (linux_process_target::supports_fork_events): ... this.
+       (linux_supports_vfork_events): Turn into ...
+       (linux_process_target::supports_vfork_events): ... this.
+       (linux_supports_exec_events): Turn into ...
+       (linux_process_target::supports_exec_events): ... 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 supports_multi_process op into a
index a00c74cdf055729e50ed9b2d5940a6a8ba7af3f9..65a74522b1853452ad419718cec096108da7a247 100644 (file)
@@ -6346,24 +6346,24 @@ linux_process_target::supports_multi_process ()
 
 /* Check if fork events are supported.  */
 
-static int
-linux_supports_fork_events (void)
+bool
+linux_process_target::supports_fork_events ()
 {
   return linux_supports_tracefork ();
 }
 
 /* Check if vfork events are supported.  */
 
-static int
-linux_supports_vfork_events (void)
+bool
+linux_process_target::supports_vfork_events ()
 {
   return linux_supports_tracefork ();
 }
 
 /* Check if exec events are supported.  */
 
-static int
-linux_supports_exec_events (void)
+bool
+linux_process_target::supports_exec_events ()
 {
   return linux_supports_traceexec ();
 }
@@ -7429,9 +7429,6 @@ linux_get_hwcap2 (int wordsize)
 static linux_process_target the_linux_target;
 
 static process_stratum_target linux_target_ops = {
-  linux_supports_fork_events,
-  linux_supports_vfork_events,
-  linux_supports_exec_events,
   linux_handle_new_gdb_connection,
 #ifdef USE_THREAD_DB
   thread_db_handle_monitor_command,
index 58730e2c0a31cb9b0c7ee5698e55379fc303a9b1..f78ef78ad6fb283320eecd25f0556c1a6ae5a0c1 100644 (file)
@@ -365,6 +365,12 @@ public:
   int start_non_stop (bool enable) override;
 
   bool supports_multi_process () override;
+
+  bool supports_fork_events () override;
+
+  bool supports_vfork_events () override;
+
+  bool supports_exec_events () override;
 };
 
 #define get_thread_lwp(thr) ((struct lwp_info *) (thread_target_data (thr)))
index 897bc9e663ff904b2804652ccc9c2d4ce0dd2e13..088582b2609183de78423d011a083b12d448d5d4 100644 (file)
@@ -735,9 +735,6 @@ static lynx_process_target the_lynx_target;
 /* The LynxOS target_ops vector.  */
 
 static process_stratum_target lynx_target_ops = {
-  NULL,  /* supports_fork_events */
-  NULL,  /* supports_vfork_events */
-  NULL,  /* supports_exec_events */
   NULL,  /* handle_new_gdb_connection */
   NULL,  /* handle_monitor_command */
   NULL,  /* core_of_thread */
index 11b290a20a35283a768c01c0580c0816fc5a9b07..0d1432b8bacdabea726064a6046877dbf8309ae4 100644 (file)
@@ -947,9 +947,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, /* supports_fork_events */
-  NULL, /* supports_vfork_events */
-  NULL, /* supports_exec_events */
   NULL, /* handle_new_gdb_connection */
   NULL, /* handle_monitor_command */
   NULL, /* core_of_thread */
index 485eecbee917cc4ca4a7c674556c0510bc360eed..15d48427f31292ff50b8ab35a23045d5716125b5 100644 (file)
@@ -553,3 +553,21 @@ process_target::supports_multi_process ()
 {
   return false;
 }
+
+bool
+process_target::supports_fork_events ()
+{
+  return false;
+}
+
+bool
+process_target::supports_vfork_events ()
+{
+  return false;
+}
+
+bool
+process_target::supports_exec_events ()
+{
+  return false;
+}
index 52c80b848d0d7a9d813886a819b1427f5eb68ebb..ef2fd01846397c9808162137ee683ca772a6b139 100644 (file)
@@ -70,15 +70,6 @@ class process_target;
    shared code.  */
 struct process_stratum_target
 {
-  /* Returns true if fork events are supported.  */
-  int (*supports_fork_events) (void);
-
-  /* Returns true if vfork events are supported.  */
-  int (*supports_vfork_events) (void);
-
-  /* Returns true if exec events are supported.  */
-  int (*supports_exec_events) (void);
-
   /* Allows target to re-initialize connection-specific settings.  */
   void (*handle_new_gdb_connection) (void);
 
@@ -486,6 +477,15 @@ public:
 
   /* Returns true if the target supports multi-process debugging.  */
   virtual bool supports_multi_process ();
+
+  /* Returns true if fork events are supported.  */
+  virtual bool supports_fork_events ();
+
+  /* Returns true if vfork events are supported.  */
+  virtual bool supports_vfork_events ();
+
+  /* Returns true if exec events are supported.  */
+  virtual bool supports_exec_events ();
 };
 
 extern process_stratum_target *the_target;
@@ -504,16 +504,13 @@ void set_target_ops (process_stratum_target *);
 int kill_inferior (process_info *proc);
 
 #define target_supports_fork_events() \
-  (the_target->supports_fork_events ? \
-   (*the_target->supports_fork_events) () : 0)
+  the_target->pt->supports_fork_events ()
 
 #define target_supports_vfork_events() \
-  (the_target->supports_vfork_events ? \
-   (*the_target->supports_vfork_events) () : 0)
+  the_target->pt->supports_vfork_events ()
 
 #define target_supports_exec_events() \
-  (the_target->supports_exec_events ? \
-   (*the_target->supports_exec_events) () : 0)
+  the_target->pt->supports_exec_events ()
 
 #define target_handle_new_gdb_connection()              \
   do                                                    \
index ee7a0ea92a63556c71e6d8936d799d16269945d1..4cea682ee52ab162db80cefb28ad9532a63ab4b1 100644 (file)
@@ -1852,9 +1852,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, /* supports_fork_events */
-  NULL, /* supports_vfork_events */
-  NULL, /* supports_exec_events */
   NULL, /* handle_new_gdb_connection */
   NULL, /* handle_monitor_command */
   NULL, /* core_of_thread */