From: Daniel Jacobowitz Date: Thu, 24 Jul 2003 19:04:21 +0000 (+0000) Subject: * linux-arm-low.c (arm_reinsert_addr): New function. X-Git-Tag: cagney_x86i386-20030821-branchpoint~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e17c0eec7beb1a87bc2e6bc791e55865d566de9;p=thirdparty%2Fbinutils-gdb.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 80a328b81b0..9b52bf4b7a3 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-06-28 Daniel Jacobowitz * 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 cd075b2df8d..2e8bb981b52 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, };