aboutsummaryrefslogtreecommitdiff
path: root/src/target/target.c
diff options
context:
space:
mode:
authorMarek Vrbka <marek.vrbka@codasip.com>2023-09-22 13:57:04 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2023-10-14 12:01:38 +0000
commiteba5d211937d1ebcb3669810ff63ad1083600b67 (patch)
treeb0702c128016a3d6f1610a3be3e104b76d718ec0 /src/target/target.c
parent2c8c2cb6b1426afc73519a7445a71a0aed36cf0f (diff)
downloadriscv-openocd-eba5d211937d1ebcb3669810ff63ad1083600b67.zip
riscv-openocd-eba5d211937d1ebcb3669810ff63ad1083600b67.tar.gz
riscv-openocd-eba5d211937d1ebcb3669810ff63ad1083600b67.tar.bz2
breakpoints: add rwp all command
This patch adds the "all" option to the rwp command. It removes all watchpoints, much like rbp all removes all breakpoints. Change-Id: Id58dd103085e558f17afa4a287888cf085566ca9 Signed-off-by: Marek Vrbka <marek.vrbka@codasip.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7907 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'src/target/target.c')
-rw-r--r--src/target/target.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/target/target.c b/src/target/target.c
index acd351a..bed8a2c 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -4136,17 +4136,28 @@ COMMAND_HANDLER(handle_wp_command)
COMMAND_HANDLER(handle_rwp_command)
{
+ int retval;
+
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);
- int retval = watchpoint_remove(target, addr);
+ if (!strcmp(CMD_ARGV[0], "all")) {
+ retval = watchpoint_remove_all(target);
- if (retval != ERROR_OK)
- command_print(CMD, "Error during removal of watchpoint at address " TARGET_ADDR_FMT, addr);
+ if (retval != ERROR_OK) {
+ command_print(CMD, "Error encountered during removal of all watchpoints.");
+ command_print(CMD, "Some watchpoints may have remained set.");
+ }
+ } else {
+ target_addr_t addr;
+ COMMAND_PARSE_ADDRESS(CMD_ARGV[0], addr);
+
+ retval = watchpoint_remove(target, addr);
+
+ if (retval != ERROR_OK)
+ command_print(CMD, "Error during removal of watchpoint at address " TARGET_ADDR_FMT, addr);
+ }
return retval;
}
@@ -7065,7 +7076,7 @@ static const struct command_registration target_exec_command_handlers[] = {
.handler = handle_rwp_command,
.mode = COMMAND_EXEC,
.help = "remove watchpoint",
- .usage = "address",
+ .usage = "'all' | address",
},
{
.name = "load_image",