From 5ceae0eef4c4cdcb1c54807a93144b2700593d44 Mon Sep 17 00:00:00 2001 From: Marc Schink Date: Thu, 14 Feb 2019 16:12:22 +0100 Subject: [PATCH] target: Add possibility to remove all breakpoints Change-Id: I46acd57956846d66bef974e0538452462b197cd0 Signed-off-by: Marc Schink Reviewed-on: http://openocd.zylin.com/4916 Tested-by: jenkins Reviewed-by: Antonio Borneo Reviewed-by: Tomas Vanek --- doc/openocd.texi | 4 ++-- src/target/target.c | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/doc/openocd.texi b/doc/openocd.texi index 4665092d15..e60d26939e 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -8173,8 +8173,8 @@ in which case it will be a hardware breakpoint. for similar mechanisms that do not consume hardware breakpoints.) @end deffn -@deffn Command {rbp} address -Remove the breakpoint at @var{address}. +@deffn Command {rbp} @option{all} | address +Remove the breakpoint at @var{address} or all breakpoints. @end deffn @deffn Command {rwp} address diff --git a/src/target/target.c b/src/target/target.c index b77400c1f0..50dd1488f0 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -3829,11 +3829,16 @@ COMMAND_HANDLER(handle_rbp_command) if (CMD_ARGC != 1) return ERROR_COMMAND_SYNTAX_ERROR; - target_addr_t addr; - COMMAND_PARSE_ADDRESS(CMD_ARGV[0], addr); - struct target *target = get_current_target(CMD_CTX); - breakpoint_remove(target, addr); + + if (!strcmp(CMD_ARGV[0], "all")) { + breakpoint_remove_all(target); + } else { + target_addr_t addr; + COMMAND_PARSE_ADDRESS(CMD_ARGV[0], addr); + + breakpoint_remove(target, addr); + } return ERROR_OK; } @@ -6318,7 +6323,7 @@ static const struct command_registration target_exec_command_handlers[] = { .handler = handle_rbp_command, .mode = COMMAND_EXEC, .help = "remove breakpoint", - .usage = "address", + .usage = "'all' | address", }, { .name = "wp", -- 2.30.2