diff options
-rw-r--r-- | doc/openocd.texi | 4 | ||||
-rw-r--r-- | src/target/target.c | 15 |
2 files changed, 12 insertions, 7 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index 4665092..e60d269 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 b77400c..50dd148 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", |