aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2003-07-24 19:04:21 +0000
committerDaniel Jacobowitz <drow@false.org>2003-07-24 19:04:21 +0000
commit3e17c0eec7beb1a87bc2e6bc791e55865d566de9 (patch)
tree93e7e3317af3ed3e34cd66fcdf853a41ece1742d /gdb
parentf5c8a159067b25d1ab07ce94962f2781a8386dc8 (diff)
downloadgdb-3e17c0eec7beb1a87bc2e6bc791e55865d566de9.zip
gdb-3e17c0eec7beb1a87bc2e6bc791e55865d566de9.tar.gz
gdb-3e17c0eec7beb1a87bc2e6bc791e55865d566de9.tar.bz2
* linux-arm-low.c (arm_reinsert_addr): New function.
(the_low_target): Add arm_reinsert_addr.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/linux-arm-low.c13
2 files changed, 17 insertions, 1 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 80a328b..9b52bf4 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -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-06-28 Daniel Jacobowitz <drow@mvista.com>
* configure.in: Check whether we need to prototype strerror.
diff --git a/gdb/gdbserver/linux-arm-low.c b/gdb/gdbserver/linux-arm-low.c
index cd075b2..2e8bb98 100644
--- a/gdb/gdbserver/linux-arm-low.c
+++ b/gdb/gdbserver/linux-arm-low.c
@@ -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,
};