From 3b2fc2ea683563693bf8f2c57e3b80322fceb332 Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Thu, 24 Jul 2003 19:03:50 +0000 Subject: * linux-arm-low.c (arm_reinsert_addr): New function. (the_low_target): Add arm_reinsert_addr. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/linux-arm-low.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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 + + * linux-arm-low.c (arm_reinsert_addr): New function. + (the_low_target): Add arm_reinsert_addr. + 2003-07-08 Mark Kettenis * 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, }; -- cgit v1.1