Remove too simple breakpoint_reinsert_addr implementations.
authorAntoine Tremblay <antoine.tremblay@ericsson.com>
Thu, 19 Nov 2015 16:29:10 +0000 (11:29 -0500)
committerAntoine Tremblay <antoine.tremblay@ericsson.com>
Mon, 30 Nov 2015 20:19:11 +0000 (15:19 -0500)
This patch removes too simple implementations of the breakpoint_reinsert_addr
operation.

The only reason to keep them around was to support thread events when
PTRACE_EVENT_CLONE was not present but this support has been removed in a
previous patch.

No regressions, tested on ubuntu 14.04 ARMv7 and x86.
With gdbserver-{native,extended} / { -marm -mthumb }

Also compilation was tested on aarch64, bfin, cris, crisv32,
m32r, mips, nios2, ppc, s390, sparc, tic6x, tile,  xtensa.

gdb/gdbserver/ChangeLog:

* linux-arm-low.c (arm_reinsert_addr): Remove function.
(struct linux_target_ops <breakpoint_reinsert_addr>: Set to NULL.
* linux-cris-low.c (cris_reinsert_addr> Remove function.
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
* linux-crisv32-low.c (cris_reinsert_addr): Remove function.
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
* linux-mips-low.c (mips_reinsert_addr): Remove function.
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
* linux-nios2-low.c (nios2_reinsert_addr): Remove function.
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
* linux-sparc-low.c (sparc_reinsert_addr): Remove function.
(struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-arm-low.c
gdb/gdbserver/linux-cris-low.c
gdb/gdbserver/linux-crisv32-low.c
gdb/gdbserver/linux-mips-low.c
gdb/gdbserver/linux-nios2-low.c
gdb/gdbserver/linux-sparc-low.c

index 719ac2be98cac6a2a2ec0a2cb18101580e4e44b8..136df2671555ea0678573d4acdddeea1f53436cc 100644 (file)
@@ -1,3 +1,18 @@
+2015-11-30  Antoine Tremblay  <antoine.tremblay@ericsson.com>
+
+       * linux-arm-low.c (arm_reinsert_addr): Remove function.
+       (struct linux_target_ops <breakpoint_reinsert_addr>: Set to NULL.
+       * linux-cris-low.c (cris_reinsert_addr> Remove function.
+       (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
+       * linux-crisv32-low.c (cris_reinsert_addr): Remove function.
+       (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
+       * linux-mips-low.c (mips_reinsert_addr): Remove function.
+       (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
+       * linux-nios2-low.c (nios2_reinsert_addr): Remove function.
+       (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
+       * linux-sparc-low.c (sparc_reinsert_addr): Remove function.
+       (struct linux_target_ops) <breakpoint_reinsert_addr>: Set to NULL.
+
 2015-11-30  Antoine Tremblay  <antoine.tremblay@ericsson.com>
 
        * linux-low.c (linux_look_up_symbols): Don't call
index 0c788886159f464f411c2944889ab917fe930907..885aec95a93342c6cdded25223bca9bd0b14531b 100644 (file)
@@ -317,18 +317,6 @@ arm_breakpoint_at (CORE_ADDR where)
   return 0;
 }
 
-/* We only place breakpoints in empty marker functions, and thread locking
-   is outside of the function.  So rather than importing software single-step,
-   we can just run until exit.  */
-static CORE_ADDR
-arm_reinsert_addr (void)
-{
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
-  unsigned long pc;
-  collect_register_by_name (regcache, "lr", &pc);
-  return pc;
-}
-
 /* Fetch the thread-local storage pointer for libthread_db.  */
 
 ps_err_e
@@ -1044,7 +1032,7 @@ struct linux_target_ops the_low_target = {
   arm_set_pc,
   arm_breakpoint_kind_from_pc,
   arm_sw_breakpoint_from_kind,
-  arm_reinsert_addr,
+  NULL, /* breakpoint_reinsert_addr */
   0,
   arm_breakpoint_at,
   arm_supports_z_point_type,
index d7b70e3eae3620b6baec445dc950681710d06ed6..9f4519c19531c2f6663a17232f0b31a1565f9773 100644 (file)
@@ -105,18 +105,6 @@ cris_breakpoint_at (CORE_ADDR where)
   return 0;
 }
 
-/* We only place breakpoints in empty marker functions, and thread locking
-   is outside of the function.  So rather than importing software single-step,
-   we can just run until exit.  */
-static CORE_ADDR
-cris_reinsert_addr (void)
-{
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
-  unsigned long pc;
-  collect_register_by_name (regcache, "srp", &pc);
-  return pc;
-}
-
 static void
 cris_arch_setup (void)
 {
@@ -151,13 +139,9 @@ struct linux_target_ops the_low_target = {
   cris_set_pc,
   NULL, /* breakpoint_kind_from_pc */
   cris_sw_breakpoint_from_kind,
-  cris_reinsert_addr,
+  NULL, /* breakpoint_reinsert_addr */
   0,
   cris_breakpoint_at,
-  0,
-  0,
-  0,
-  0,
 };
 
 void
index 4f9afa6d9f0edcf89070b55c155e8d21ffc4eb4b..2404d0e1f04128c64b9f9a3a6eae628368349048 100644 (file)
@@ -101,23 +101,6 @@ cris_breakpoint_at (CORE_ADDR where)
   return 0;
 }
 
-/* We only place breakpoints in empty marker functions, and thread locking
-   is outside of the function.  So rather than importing software single-step,
-   we can just run until exit.  */
-
-/* FIXME: This function should not be needed, since we have PTRACE_SINGLESTEP
-   for CRISv32.  Without it, td_ta_event_getmsg in thread_db_create_event
-   will fail when debugging multi-threaded applications.  */
-
-static CORE_ADDR
-cris_reinsert_addr (void)
-{
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
-  unsigned long pc;
-  collect_register_by_name (regcache, "srp", &pc);
-  return pc;
-}
-
 static void
 cris_write_data_breakpoint (struct regcache *regcache,
                            int bp, unsigned long start, unsigned long end)
@@ -439,7 +422,7 @@ struct linux_target_ops the_low_target = {
   cris_set_pc,
   NULL, /* breakpoint_kind_from_pc */
   cris_sw_breakpoint_from_kind,
-  cris_reinsert_addr,
+  NULL, /* breakpoint_reinsert_addr */
   0,
   cris_breakpoint_at,
   cris_supports_z_point_type,
index 459f4fc68503c5758719aa724909eb06ccdb2246..b8f8805cbaaf232bae86e7f13ad176db24ab7d74 100644 (file)
@@ -275,18 +275,6 @@ mips_sw_breakpoint_from_kind (int kind, int *size)
   return (const gdb_byte *) &mips_breakpoint;
 }
 
-/* We only place breakpoints in empty marker functions, and thread locking
-   is outside of the function.  So rather than importing software single-step,
-   we can just run until exit.  */
-static CORE_ADDR
-mips_reinsert_addr (void)
-{
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
-  union mips_register ra;
-  collect_register_by_name (regcache, "r31", ra.buf);
-  return register_size (regcache->tdesc, 0) == 4 ? ra.reg32 : ra.reg64;
-}
-
 static int
 mips_breakpoint_at (CORE_ADDR where)
 {
@@ -892,7 +880,7 @@ struct linux_target_ops the_low_target = {
   mips_set_pc,
   NULL, /* breakpoint_kind_from_pc */
   mips_sw_breakpoint_from_kind,
-  mips_reinsert_addr,
+  NULL, /* breakpoint_reinsert_addr */
   0,
   mips_breakpoint_at,
   mips_supports_z_point_type,
index 369e89c3121ba59967416e89ded3f2f6ae4876e6..9380c3b211d49a6fa6907341112d1333dc7c2120 100644 (file)
@@ -144,18 +144,6 @@ nios2_sw_breakpoint_from_kind (int kind, int *size)
   return (const gdb_byte *) &nios2_breakpoint;
 }
 
-/* Implement the breakpoint_reinsert_addr linux_target_ops method.  */
-
-static CORE_ADDR
-nios2_reinsert_addr (void)
-{
-  union nios2_register ra;
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
-
-  collect_register_by_name (regcache, "ra", ra.buf);
-  return ra.reg32;
-}
-
 /* Implement the breakpoint_at linux_target_ops method.  */
 
 static int
@@ -279,7 +267,7 @@ struct linux_target_ops the_low_target =
   nios2_set_pc,
   NULL, /* breakpoint_kind_from_pc */
   nios2_sw_breakpoint_from_kind,
-  nios2_reinsert_addr,
+  NULL, /* breakpoint_reinsert_addr */
   0,
   nios2_breakpoint_at,
 };
index e6a4f844ef2f45918d3630a553182d336e910c7a..54a849c61ae0bcab5b8dacf551734f095bba0c42 100644 (file)
@@ -265,19 +265,6 @@ sparc_breakpoint_at (CORE_ADDR where)
   return 0;
 }
 
-/* We only place breakpoints in empty marker functions, and thread locking
-   is outside of the function.  So rather than importing software single-step,
-   we can just run until exit.  */
-static CORE_ADDR
-sparc_reinsert_addr (void)
-{
-  struct regcache *regcache = get_thread_regcache (current_thread, 1);
-  CORE_ADDR lr;
-  /* O7 is the equivalent to the 'lr' of other archs.  */
-  collect_register_by_name (regcache, "o7", &lr);
-  return lr;
-}
-
 static void
 sparc_arch_setup (void)
 {
@@ -333,7 +320,7 @@ struct linux_target_ops the_low_target = {
   NULL,
   NULL, /* breakpoint_kind_from_pc */
   sparc_sw_breakpoint_from_kind,
-  sparc_reinsert_addr,
+  NULL, /* breakpoint_reinsert_addr */
   0,
   sparc_breakpoint_at,
   NULL,  /* supports_z_point_type */