aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2003-07-24 19:03:50 +0000
committerDaniel Jacobowitz <drow@false.org>2003-07-24 19:03:50 +0000
commit3b2fc2ea683563693bf8f2c57e3b80322fceb332 (patch)
tree867afc9859d68f4fd63839a80c0d7eaed8a62717 /gdb
parenta9f12a31acf648a8c5bb24d836ec19331d7fe535 (diff)
downloadgdb-3b2fc2ea683563693bf8f2c57e3b80322fceb332.zip
gdb-3b2fc2ea683563693bf8f2c57e3b80322fceb332.tar.gz
gdb-3b2fc2ea683563693bf8f2c57e3b80322fceb332.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 1f488bc..1a3a7dc 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-07-08 Mark Kettenis <kettenis@gnu.org>
* mem-break.c: Remove whitespace at end of file.
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,
};