From: Fabien Le Mentec Date: Thu, 27 Dec 2012 13:00:46 +0000 (-0600) Subject: [ merge ] patch from fischermi@t-online.de, GDB server endless loop X-Git-Url: https://git.gag.com/?a=commitdiff_plain;ds=sidebyside;h=1c2828cc914260a57299461373bf835f90043863;p=fw%2Fstlink [ merge ] patch from fischermi@t-online.de, GDB server endless loop --- diff --git a/gdbserver/gdb-server.c b/gdbserver/gdb-server.c index 04490ad..1b5fc84 100644 --- a/gdbserver/gdb-server.c +++ b/gdbserver/gdb-server.c @@ -650,7 +650,8 @@ int serve(stlink_t *sl, int port) { perror("listen"); return 1; } - + +start_again: stlink_force_debug(sl); stlink_reset(sl); init_code_breakpoints(sl); @@ -681,7 +682,7 @@ int serve(stlink_t *sl, int port) { int status = gdb_recv_packet(client, &packet); if(status < 0) { fprintf(stderr, "cannot recv: %d\n", status); - return 1; + goto start_again; } #ifdef DEBUG @@ -1220,7 +1221,9 @@ int serve(stlink_t *sl, int port) { int result = gdb_send_packet(client, reply); if(result != 0) { fprintf(stderr, "cannot send: %d\n", result); - return 1; + free(reply); + free(packet); + goto start_again; } free(reply);