X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fserver%2Fgdb_server.c;fp=src%2Fserver%2Fgdb_server.c;h=4dee7e8642d7fff719c72ec717de5ea277dcef4a;hb=103b1d68db5038edd9e8878c798525715590f4e1;hp=f8a1aac83ac2a9af4bfd35c4040b0a551e5a1de8;hpb=bc50b8f1b299991851d4ff3eb30f583ed6aa530b;p=fw%2Fopenocd diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index f8a1aac83..4dee7e864 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -2281,6 +2281,9 @@ static int smp_reg_list_noread(struct target *target, struct target_list *head; foreach_smp_target(head, target->smp_targets) { + if (!target_was_examined(head->target)) + continue; + struct reg **reg_list = NULL; int reg_list_size; int result = target_get_gdb_reg_list_noread(head->target, ®_list, @@ -2329,8 +2332,17 @@ static int smp_reg_list_noread(struct target *target, free(reg_list); } + if (local_list_size == 0) { + LOG_ERROR("Unable to get register list"); + free(local_list); + return ERROR_FAIL; + } + /* Now warn the user about any registers that weren't found in every target. */ foreach_smp_target(head, target->smp_targets) { + if (!target_was_examined(head->target)) + continue; + struct reg **reg_list = NULL; int reg_list_size; int result = target_get_gdb_reg_list_noread(head->target, ®_list,