target: Add possibility to remove all breakpoints 16/4916/3
authorMarc Schink <openocd-dev@marcschink.de>
Thu, 14 Feb 2019 15:12:22 +0000 (16:12 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Thu, 26 Mar 2020 19:30:45 +0000 (19:30 +0000)
Change-Id: I46acd57956846d66bef974e0538452462b197cd0
Signed-off-by: Marc Schink <openocd-dev@marcschink.de>
Reviewed-on: http://openocd.zylin.com/4916
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
doc/openocd.texi
src/target/target.c

index 4665092..e60d269 100644 (file)
@@ -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
index b77400c..50dd148 100644 (file)
@@ -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",