X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fsmp.c;h=f42d8abedcb0b0efb8922e7897e4b1f07b1fc5a4;hp=87944331e059aa3d865e094784e8ad7b23a5eecb;hb=84a2cab596a0621fab3424c72b43280ccdc240c2;hpb=246782229f8f7536bee66322dbe7f366b85628ec diff --git a/src/target/smp.c b/src/target/smp.c index 87944331e0..f42d8abedc 100644 --- a/src/target/smp.c +++ b/src/target/smp.c @@ -151,6 +151,27 @@ COMMAND_HANDLER(deprecated_handle_smp_off_command) return CALL_COMMAND_HANDLER(default_handle_smp_command); } +COMMAND_HANDLER(handle_smp_gdb_command) +{ + struct target *target = get_current_target(CMD_CTX); + int retval = ERROR_OK; + struct target_list *head; + head = target->head; + if (head != (struct target_list *)NULL) { + if (CMD_ARGC == 1) { + int coreid = 0; + COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], coreid); + if (ERROR_OK != retval) + return retval; + target->gdb_service->core[1] = coreid; + + } + command_print(CMD_CTX, "gdb coreid %" PRId32 " -> %" PRId32, target->gdb_service->core[0] + , target->gdb_service->core[1]); + } + return ERROR_OK; +} + const struct command_registration smp_command_handlers[] = { { .name = "smp", @@ -173,5 +194,12 @@ const struct command_registration smp_command_handlers[] = { .help = "Stop smp handling", .usage = "", }, + { + .name = "smp_gdb", + .handler = handle_smp_gdb_command, + .mode = COMMAND_EXEC, + .help = "display/fix current core played to gdb", + .usage = "", + }, COMMAND_REGISTRATION_DONE };