* linux-arm-low.c (arm_reinsert_addr): New function.
authorDaniel Jacobowitz <drow@false.org>
Thu, 24 Jul 2003 19:03:50 +0000 (19:03 +0000)
committerDaniel Jacobowitz <drow@false.org>
Thu, 24 Jul 2003 19:03:50 +0000 (19:03 +0000)
(the_low_target): Add arm_reinsert_addr.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-arm-low.c

index 1f488bca348f039642126f62a2a7ec5e7f97ccea..1a3a7dc27fc66adc488219977e0020e4ea30eab0 100644 (file)
@@ -1,3 +1,8 @@
+2003-07-24  Daniel Jacobowitz  <drow@mvista.com>
+
+       * linux-arm-low.c (arm_reinsert_addr): New function.
+       (the_low_target): Add arm_reinsert_addr.
+
 2003-07-08  Mark Kettenis  <kettenis@gnu.org>
 
        * mem-break.c: Remove whitespace at end of file.
index cd075b2df8d3f8e213923e6dc434722652084c5f..2e8bb981b520a08b57fe718754778f64adca0736 100644 (file)
@@ -80,6 +80,17 @@ 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 ()
+{
+  unsigned long pc;
+  collect_register_by_name ("lr", &pc);
+  return pc;
+}
+
 struct linux_target_ops the_low_target = {
   arm_num_regs,
   arm_regmap,
@@ -89,7 +100,7 @@ struct linux_target_ops the_low_target = {
   arm_set_pc,
   (const char *) &arm_breakpoint,
   arm_breakpoint_len,
-  NULL,
+  arm_reinsert_addr,
   0,
   arm_breakpoint_at,
 };