public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdbserver/linux-low: turn 'supports_hardware_single_step' into a method
@ 2020-04-02 13:19 Tankut Baris Aktemur
  0 siblings, 0 replies; only message in thread
From: Tankut Baris Aktemur @ 2020-04-02 13:19 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b31cdfa69f4adfc4760da1480c900f5c27421d43

commit b31cdfa69f4adfc4760da1480c900f5c27421d43
Author: Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
Date:   Thu Apr 2 15:11:31 2020 +0200

    gdbserver/linux-low: turn 'supports_hardware_single_step' into a method
    
    All the linux low targets except arm define the
    'supports_hardware_single_step' op to return true.  Hence, we override
    the method to return true in linux_process_target, and remove the
    definitions in all the linux low targets but arm.
    
    gdbserver/ChangeLog:
    2020-04-02  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
    
            Remove the 'supports_hardware_single_step' linux target op and
            override the process_stratum_target's op definition in
            linux_process_target to return true.
    
            * linux-low.h (struct linux_target_ops): Remove the op.
            (class linux_process_target) <finish_step_over>
            <maybe_hw_step>: Declare.
            * linux-low.cc (can_hardware_single_step): Remove.
            (maybe_hw_step): Turn into...
            (linux_process_target::maybe_hw_step): ...this.
            (finish_step_over): Turn into...
            (linux_process_target::finish_step_over): ...this.
            (linux_process_target::supports_hardware_single_step): Update
            to return true.
    
            Update the callers below.
    
            (linux_process_target::single_step)
            (linux_process_target::resume_one_lwp_throw)
    
            * linux-arm-low.cc (class arm_target)
            <supports_hardware_single_step>: Declare.
            (arm_supports_hardware_single_step): Turn into...
            (arm_target::supports_hardware_single_step): ...this.
            (the_low_target): Remove the op field.
            * linux-x86-low.cc (x86_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-aarch64-low.cc (aarch64_supports_hardware_single_step):
            Remove.
            (the_low_target): Remove the op field.
            * linux-bfin-low.cc (bfin_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-crisv32-low.cc (cris_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-m32r-low.cc (m32r_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-m68k-low.cc (m68k_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-ppc-low.cc (ppc_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-s390-low.cc (s390_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-sh-low.cc (sh_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-tic6x-low.cc (tic6x_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-tile-low.cc (tile_supports_hardware_single_step): Remove.
            (the_low_target): Remove the op field.
            * linux-xtensa-low.cc (xtensa_supports_hardware_single_step):
            Remove.
            (the_low_target): Remove the op field.

Diff:
---
 gdbserver/ChangeLog            | 54 ++++++++++++++++++++++++++++++++++++++++++
 gdbserver/linux-aarch64-low.cc |  9 -------
 gdbserver/linux-arm-low.cc     |  9 +++----
 gdbserver/linux-bfin-low.cc    |  9 -------
 gdbserver/linux-crisv32-low.cc |  9 -------
 gdbserver/linux-low.cc         | 46 +++++++++++------------------------
 gdbserver/linux-low.h          | 12 +++++++---
 gdbserver/linux-m32r-low.cc    |  9 -------
 gdbserver/linux-m68k-low.cc    |  9 -------
 gdbserver/linux-ppc-low.cc     |  9 -------
 gdbserver/linux-s390-low.cc    |  9 -------
 gdbserver/linux-sh-low.cc      |  9 -------
 gdbserver/linux-tic6x-low.cc   |  9 -------
 gdbserver/linux-tile-low.cc    | 10 --------
 gdbserver/linux-x86-low.cc     | 10 --------
 gdbserver/linux-xtensa-low.cc  |  9 -------
 16 files changed, 82 insertions(+), 149 deletions(-)

diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog
index 31901878e2e..9f14c57933e 100644
--- a/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,3 +1,57 @@
+2020-04-02  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	Remove the 'supports_hardware_single_step' linux target op and
+	override the process_stratum_target's op definition in
+	linux_process_target to return true.
+
+	* linux-low.h (struct linux_target_ops): Remove the op.
+	(class linux_process_target) <finish_step_over>
+	<maybe_hw_step>: Declare.
+	* linux-low.cc (can_hardware_single_step): Remove.
+	(maybe_hw_step): Turn into...
+	(linux_process_target::maybe_hw_step): ...this.
+	(finish_step_over): Turn into...
+	(linux_process_target::finish_step_over): ...this.
+	(linux_process_target::supports_hardware_single_step): Update
+	to return true.
+
+	Update the callers below.
+
+	(linux_process_target::single_step)
+	(linux_process_target::resume_one_lwp_throw)
+
+	* linux-arm-low.cc (class arm_target)
+	<supports_hardware_single_step>: Declare.
+	(arm_supports_hardware_single_step): Turn into...
+	(arm_target::supports_hardware_single_step): ...this.
+	(the_low_target): Remove the op field.
+	* linux-x86-low.cc (x86_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-aarch64-low.cc (aarch64_supports_hardware_single_step):
+	Remove.
+	(the_low_target): Remove the op field.
+	* linux-bfin-low.cc (bfin_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-crisv32-low.cc (cris_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-m32r-low.cc (m32r_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-m68k-low.cc (m68k_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-ppc-low.cc (ppc_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-s390-low.cc (s390_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-sh-low.cc (sh_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-tic6x-low.cc (tic6x_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-tile-low.cc (tile_supports_hardware_single_step): Remove.
+	(the_low_target): Remove the op field.
+	* linux-xtensa-low.cc (xtensa_supports_hardware_single_step):
+	Remove.
+	(the_low_target): Remove the op field.
+
 2020-04-02  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
 
 	Turn the 'supports_range_stepping' linux target op into a method
diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
index b23f1c8e1f2..4f7c2578eb8 100644
--- a/gdbserver/linux-aarch64-low.cc
+++ b/gdbserver/linux-aarch64-low.cc
@@ -3157,17 +3157,8 @@ aarch64_target::breakpoint_kind_from_current_state (CORE_ADDR *pcptr)
     return arm_breakpoint_kind_from_current_state (pcptr);
 }
 
-/* Support for hardware single step.  */
-
-static int
-aarch64_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 struct linux_target_ops the_low_target =
 {
-  aarch64_supports_hardware_single_step,
   aarch64_get_syscall_trapinfo,
 };
 
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index a7d5261d2e2..2e3d00a489a 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -72,6 +72,8 @@ public:
 
   bool supports_z_point_type (char z_type) override;
 
+  bool supports_hardware_single_step () override;
+
 protected:
 
   void low_arch_setup () override;
@@ -1030,10 +1032,10 @@ arm_target::low_get_next_pcs (regcache *regcache)
 
 /* Support for hardware single step.  */
 
-static int
-arm_supports_hardware_single_step (void)
+bool
+arm_target::supports_hardware_single_step ()
 {
-  return 0;
+  return false;
 }
 
 /* Implementation of linux_target_ops method "get_syscall_trapinfo".  */
@@ -1117,7 +1119,6 @@ arm_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  arm_supports_hardware_single_step,
   arm_get_syscall_trapinfo,
 };
 
diff --git a/gdbserver/linux-bfin-low.cc b/gdbserver/linux-bfin-low.cc
index 3b241249173..b83af96a85c 100644
--- a/gdbserver/linux-bfin-low.cc
+++ b/gdbserver/linux-bfin-low.cc
@@ -144,14 +144,6 @@ bfin_target::low_arch_setup ()
   current_process ()->tdesc = tdesc_bfin;
 }
 
-/* Support for hardware single step.  */
-
-static int
-bfin_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static struct usrregs_info bfin_usrregs_info =
   {
     bfin_num_regs,
@@ -171,7 +163,6 @@ bfin_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  bfin_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-crisv32-low.cc b/gdbserver/linux-crisv32-low.cc
index 8850e73b7e1..f6625103705 100644
--- a/gdbserver/linux-crisv32-low.cc
+++ b/gdbserver/linux-crisv32-low.cc
@@ -426,14 +426,6 @@ crisv32_target::low_arch_setup ()
   current_process ()->tdesc = tdesc_crisv32;
 }
 
-/* Support for hardware single step.  */
-
-static int
-cris_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static struct regset_info cris_regsets[] = {
   { PTRACE_GETREGS, PTRACE_SETREGS, 0, cris_num_regs * 4,
     GENERAL_REGS, cris_fill_gregset, cris_store_gregset },
@@ -468,7 +460,6 @@ crisv32_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  cris_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 7ec01f473aa..56615430b59 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -270,7 +270,6 @@ static int stabilizing_threads;
 static void unsuspend_all_lwps (struct lwp_info *except);
 static void mark_lwp_dead (struct lwp_info *lwp, int wstat);
 static int lwp_is_marked_dead (struct lwp_info *lwp);
-static int finish_step_over (struct lwp_info *lwp);
 static int kill_lwp (unsigned long lwpid, int signo);
 static void enqueue_pending_signal (struct lwp_info *lwp, int signal, siginfo_t *info);
 static int linux_low_ptrace_options (int attached);
@@ -280,17 +279,6 @@ static int check_ptrace_stopped_lwp_gone (struct lwp_info *lp);
    being stepped.  */
 ptid_t step_over_bkpt;
 
-/* True if the low target can hardware single-step.  */
-
-static int
-can_hardware_single_step (void)
-{
-  if (the_low_target.supports_hardware_single_step != NULL)
-    return the_low_target.supports_hardware_single_step ();
-  else
-    return 0;
-}
-
 bool
 linux_process_target::low_supports_breakpoints ()
 {
@@ -2503,19 +2491,17 @@ linux_process_target::filter_event (int lwpid, int wstat)
   return child;
 }
 
-/* Return true if THREAD is doing hardware single step.  */
-
-static int
-maybe_hw_step (struct thread_info *thread)
+bool
+linux_process_target::maybe_hw_step (thread_info *thread)
 {
-  if (can_hardware_single_step ())
-    return 1;
+  if (supports_hardware_single_step ())
+    return true;
   else
     {
       /* GDBserver must insert single-step breakpoint for software
 	 single step.  */
       gdb_assert (has_single_step_breakpoints (thread));
-      return 0;
+      return false;
     }
 }
 
@@ -4107,7 +4093,7 @@ linux_process_target::single_step (lwp_info* lwp)
 {
   int step = 0;
 
-  if (can_hardware_single_step ())
+  if (supports_hardware_single_step ())
     {
       step = 1;
     }
@@ -4218,7 +4204,7 @@ linux_process_target::resume_one_lwp_throw (lwp_info *lwp, int step,
 	debug_printf ("  pending reinsert at 0x%s\n",
 		      paddress (lwp->bp_reinsert));
 
-      if (can_hardware_single_step ())
+      if (supports_hardware_single_step ())
 	{
 	  if (fast_tp_collecting == fast_tpoint_collect_result::not_collecting)
 	    {
@@ -4247,7 +4233,7 @@ linux_process_target::resume_one_lwp_throw (lwp_info *lwp, int step,
 		      " single-stepping\n",
 		      lwpid_of (thread));
 
-      if (can_hardware_single_step ())
+      if (supports_hardware_single_step ())
 	step = 1;
       else
 	{
@@ -4700,12 +4686,8 @@ linux_process_target::start_step_over (lwp_info *lwp)
   step_over_bkpt = thread->id;
 }
 
-/* Finish a step-over.  Reinsert the breakpoint we had uninserted in
-   start_step_over, if still there, and delete any single-step
-   breakpoints we've set, on non hardware single-step targets.  */
-
-static int
-finish_step_over (struct lwp_info *lwp)
+bool
+linux_process_target::finish_step_over (lwp_info *lwp)
 {
   if (lwp->bp_reinsert != 0)
     {
@@ -4728,7 +4710,7 @@ finish_step_over (struct lwp_info *lwp)
 	 and later not being able to explain it, because we were
 	 stepping over a breakpoint, and we hold all threads but
 	 LWP stopped while doing that.  */
-      if (!can_hardware_single_step ())
+      if (!supports_hardware_single_step ())
 	{
 	  gdb_assert (has_single_step_breakpoints (current_thread));
 	  delete_single_step_breakpoints (current_thread);
@@ -4736,10 +4718,10 @@ finish_step_over (struct lwp_info *lwp)
 
       step_over_bkpt = null_ptid;
       current_thread = saved_thread;
-      return 1;
+      return true;
     }
   else
-    return 0;
+    return false;
 }
 
 void
@@ -5899,7 +5881,7 @@ linux_process_target::supports_stopped_by_hw_breakpoint ()
 bool
 linux_process_target::supports_hardware_single_step ()
 {
-  return can_hardware_single_step ();
+  return true;
 }
 
 bool
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index 86a563a053c..0182be17ce1 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -131,9 +131,6 @@ struct lwp_info;
 
 struct linux_target_ops
 {
-  /* See target.h.  */
-  int (*supports_hardware_single_step) (void);
-
   /* Fill *SYSNO with the syscall nr trapped.  Only to be called when
      inferior is stopped due to SYSCALL_SIGTRAP.  */
   void (*get_syscall_trapinfo) (struct regcache *regcache, int *sysno);
@@ -401,6 +398,12 @@ private:
      events.  */
   void complete_ongoing_step_over ();
 
+  /* Finish a step-over.  Reinsert the breakpoint we had uninserted in
+     start_step_over, if still there, and delete any single-step
+     breakpoints we've set, on non hardware single-step targets.
+     Return true if step over finished.  */
+  bool finish_step_over (lwp_info *lwp);
+
   /* When we finish a step-over, set threads running again.  If there's
      another thread that may need a step-over, now's the time to start
      it.  Eventually, we'll move all threads past their breakpoints.  */
@@ -519,6 +522,9 @@ private:
      or can't single step.  */
   int single_step (lwp_info* lwp);
 
+  /* Return true if THREAD is doing hardware single step.  */
+  bool maybe_hw_step (thread_info *thread);
+
   /* Install breakpoints for software single stepping.  */
   void install_software_single_step_breakpoints (lwp_info *lwp);
 
diff --git a/gdbserver/linux-m32r-low.cc b/gdbserver/linux-m32r-low.cc
index 8104e54c10d..6d33157dfdf 100644
--- a/gdbserver/linux-m32r-low.cc
+++ b/gdbserver/linux-m32r-low.cc
@@ -134,14 +134,6 @@ m32r_target::low_arch_setup ()
   current_process ()->tdesc = tdesc_m32r;
 }
 
-/* Support for hardware single step.  */
-
-static int
-m32r_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static struct usrregs_info m32r_usrregs_info =
   {
     m32r_num_regs,
@@ -161,7 +153,6 @@ m32r_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  m32r_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc
index ccad368ea06..a5e39ffdb62 100644
--- a/gdbserver/linux-m68k-low.cc
+++ b/gdbserver/linux-m68k-low.cc
@@ -256,16 +256,7 @@ m68k_target::low_arch_setup ()
   current_process ()->tdesc = tdesc_m68k;
 }
 
-/* Support for hardware single step.  */
-
-static int
-m68k_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 struct linux_target_ops the_low_target = {
-  m68k_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 4993125db99..5c6930751e1 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -805,14 +805,6 @@ ppc_store_evrregset (struct regcache *regcache, const void *buf)
   supply_register_by_name (regcache, "spefscr", &regset->spefscr);
 }
 
-/* Support for hardware single step.  */
-
-static int
-ppc_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static struct regset_info ppc_regsets[] = {
   /* List the extra register sets before GENERAL_REGS.  That way we will
      fetch them every time, but still fall back to PTRACE_PEEKUSER for the
@@ -3454,7 +3446,6 @@ ppc_get_ipa_tdesc_idx (void)
 }
 
 struct linux_target_ops the_low_target = {
-  ppc_supports_hardware_single_step,
   NULL, /* get_syscall_trapinfo */
   ppc_get_ipa_tdesc_idx,
 };
diff --git a/gdbserver/linux-s390-low.cc b/gdbserver/linux-s390-low.cc
index b5d5e898c0d..3ab14d884ee 100644
--- a/gdbserver/linux-s390-low.cc
+++ b/gdbserver/linux-s390-low.cc
@@ -723,14 +723,6 @@ s390_target::supports_z_point_type (char z_type)
     }
 }
 
-/* Support for hardware single step.  */
-
-static int
-s390_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static struct usrregs_info s390_usrregs_info =
   {
     s390_num_regs,
@@ -2863,7 +2855,6 @@ s390_target::emit_ops ()
 }
 
 struct linux_target_ops the_low_target = {
-  s390_supports_hardware_single_step,
   NULL, /* get_syscall_trapinfo */
   s390_get_ipa_tdesc_idx,
 };
diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc
index db40322cd43..3d961647b3a 100644
--- a/gdbserver/linux-sh-low.cc
+++ b/gdbserver/linux-sh-low.cc
@@ -134,14 +134,6 @@ sh_target::low_breakpoint_at (CORE_ADDR where)
   return false;
 }
 
-/* Support for hardware single step.  */
-
-static int
-sh_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 /* Provide only a fill function for the general register set.  ps_lgetregs
    will use this for NPTL support.  */
 
@@ -192,7 +184,6 @@ sh_target::low_arch_setup ()
 }
 
 struct linux_target_ops the_low_target = {
-  sh_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-tic6x-low.cc b/gdbserver/linux-tic6x-low.cc
index c80a2fb20ed..adcc410100e 100644
--- a/gdbserver/linux-tic6x-low.cc
+++ b/gdbserver/linux-tic6x-low.cc
@@ -394,14 +394,6 @@ tic6x_target::low_arch_setup ()
   current_process ()->tdesc = tic6x_read_description (feature);
 }
 
-/* Support for hardware single step.  */
-
-static int
-tic6x_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static struct regsets_info tic6x_regsets_info =
   {
     tic6x_regsets, /* regsets */
@@ -423,7 +415,6 @@ tic6x_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  tic6x_supports_hardware_single_step,
 };
 
 #if GDB_SELF_TEST
diff --git a/gdbserver/linux-tile-low.cc b/gdbserver/linux-tile-low.cc
index 10af23fa48b..39c9694fc87 100644
--- a/gdbserver/linux-tile-low.cc
+++ b/gdbserver/linux-tile-low.cc
@@ -213,18 +213,8 @@ tile_target::low_arch_setup ()
     current_process ()->tdesc = tdesc_tilegx;
 }
 
-/* Support for hardware single step.  */
-
-static int
-tile_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
-
 struct linux_target_ops the_low_target =
 {
-  tile_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index dce9a5fb7d7..c05928d1556 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -2964,15 +2964,6 @@ x86_target::low_supports_range_stepping ()
   return true;
 }
 
-/* Implementation of linux_target_ops method "supports_hardware_single_step".
- */
-
-static int
-x86_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 static int
 x86_get_ipa_tdesc_idx (void)
 {
@@ -2994,7 +2985,6 @@ x86_get_ipa_tdesc_idx (void)
 
 struct linux_target_ops the_low_target =
 {
-  x86_supports_hardware_single_step,
   x86_get_syscall_trapinfo,
   x86_get_ipa_tdesc_idx,
 };
diff --git a/gdbserver/linux-xtensa-low.cc b/gdbserver/linux-xtensa-low.cc
index e273666e1cf..9c41c24cde1 100644
--- a/gdbserver/linux-xtensa-low.cc
+++ b/gdbserver/linux-xtensa-low.cc
@@ -314,14 +314,6 @@ xtensa_target::low_arch_setup ()
   current_process ()->tdesc = tdesc_xtensa;
 }
 
-/* Support for hardware single step.  */
-
-static int
-xtensa_supports_hardware_single_step (void)
-{
-  return 1;
-}
-
 const regs_info *
 xtensa_target::get_regs_info ()
 {
@@ -329,7 +321,6 @@ xtensa_target::get_regs_info ()
 }
 
 struct linux_target_ops the_low_target = {
-  xtensa_supports_hardware_single_step,
 };
 
 /* The linux target ops object.  */


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-02 13:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-02 13:19 [binutils-gdb] gdbserver/linux-low: turn 'supports_hardware_single_step' into a method Tankut Baris Aktemur

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).