From: drow Date: Thu, 24 Jul 2003 19:03:50 +0000 (+0000) Subject: * linux-arm-low.c (arm_reinsert_addr): New function. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=bc68a5192dc37fae4c7464103b38a24f6fba3095;p=pf3gnuchains%2Fsourceware.git * linux-arm-low.c (arm_reinsert_addr): New function. (the_low_target): Add arm_reinsert_addr. --- diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 1f488bca34..1a3a7dc27f 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 cd075b2df8..2e8bb981b5 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, };