projects
/
fw
/
stlink
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7505f99
)
[ merge ] patch from fischermi@t-online.de, GDB server endless loop
author
Fabien Le Mentec
<texane@gmail.com>
Thu, 27 Dec 2012 13:00:46 +0000
(07:00 -0600)
committer
Fabien Le Mentec
<texane@gmail.com>
Thu, 27 Dec 2012 13:00:46 +0000
(07:00 -0600)
gdbserver/gdb-server.c
patch
|
blob
|
history
diff --git
a/gdbserver/gdb-server.c
b/gdbserver/gdb-server.c
index 04490add664a088dd539dd54c439b40553659527..1b5fc84012d576eade99505a3610266657d5a197 100644
(file)
--- 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;
}
perror("listen");
return 1;
}
-
+
\r
+start_again:
stlink_force_debug(sl);
stlink_reset(sl);
init_code_breakpoints(sl);
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);
int status = gdb_recv_packet(client, &packet);
if(status < 0) {
fprintf(stderr, "cannot recv: %d\n", status);
- return 1;
+ goto start_again;
}
#ifdef DEBUG
}
#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);
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);
}
free(reply);