X-Git-Url: https://git.gag.com/?p=fw%2Fstlink;a=blobdiff_plain;f=gdbserver%2Fgdb-server.c;fp=gdbserver%2Fgdb-server.c;h=94784fcdb896d7c88fdcc6894d7f52366af73ee2;hp=89f862db00c14686e39ed665806ab64e8c089c33;hb=18d6fe4893d92b67f1690674a6e7482eef18a31f;hpb=a12ffa5a7dea62019b70c83c72c48ec9542b21d0 diff --git a/gdbserver/gdb-server.c b/gdbserver/gdb-server.c index 89f862d..94784fc 100644 --- a/gdbserver/gdb-server.c +++ b/gdbserver/gdb-server.c @@ -669,6 +669,49 @@ int serve(stlink_t *sl, int port) { strncpy(&reply[1], data, length); } } + } else if(!strncmp(queryName, "Rcmd,",4)) { + // Rcmd uses the wrong separator + char *separator = strstr(packet, ","), *params = ""; + if(separator == NULL) { + separator = packet + strlen(packet); + } else { + params = separator + 1; + } + + + if (!strncmp(params,"7265",4)) {// resume +#ifdef DEBUG + printf("Rcmd: resume\n"); +#endif + stlink_run(sl); + + reply = strdup("OK"); + } else if (!strncmp(params,"6861",4)) { //half + reply = strdup("OK"); + + stlink_force_debug(sl); + +#ifdef DEBUG + printf("Rcmd: halt\n"); +#endif + } else if (!strncmp(params,"7265",4)) { //reset + reply = strdup("OK"); + + stlink_force_debug(sl); + stlink_reset(sl); + init_code_breakpoints(sl); + init_data_watchpoints(sl); + +#ifdef DEBUG + printf("Rcmd: reset\n"); +#endif + } else { +#ifdef DEBUG + printf("Rcmd: %s\n", params); +#endif + + } + } if(reply == NULL)