From 1c2828cc914260a57299461373bf835f90043863 Mon Sep 17 00:00:00 2001 From: Fabien Le Mentec Date: Thu, 27 Dec 2012 07:00:46 -0600 Subject: [PATCH] [ merge ] patch from fischermi@t-online.de, GDB server endless loop --- gdbserver/gdb-server.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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); -- 2.30.2