gdb_server: ignore stray + in ACK mode
I couldn't make OpenOCD to work with GDB. I was always getting this in GDB: (gdb) target remote localhost:3333 Remote debugging using localhost:3333 Ignoring packet error, continuing... Ignoring packet error, continuing... Ignoring packet error, continuing... Ignoring packet error, continuing... Malformed response to offset query, timeout (gdb) While debugging gdb remote protocol, I have seen that gdb responds with: w ++$?#3f And those two '+' seems to confuse the OpenOCD parser, if it sees another '+' sign it emits the DEBUG output and sets the noack_mode to 2. The problem is that we weren't even IN noack mode, this was set to 0 and then it explicitly sets it to 2 and thus turning the noack mode on. Change-Id: If267c9226e57fa83121ded09cf69829f8f0b4b93 Signed-off-by: Matej Kupljen <matej.kupljen@gmail.com> Reviewed-on: http://openocd.zylin.com/2545 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
parent
db83fb307b
commit
750f8cd0c5
|
@ -628,7 +628,7 @@ static int gdb_get_packet_inner(struct connection *connection,
|
||||||
* warning only about subsequent ACK's. */
|
* warning only about subsequent ACK's. */
|
||||||
if (gdb_con->noack_mode > 1) {
|
if (gdb_con->noack_mode > 1) {
|
||||||
LOG_WARNING("acknowledgment received, but no packet pending");
|
LOG_WARNING("acknowledgment received, but no packet pending");
|
||||||
} else {
|
} else if (gdb_con->noack_mode) {
|
||||||
LOG_DEBUG("Received first acknowledgment after entering noack mode. Ignoring it.");
|
LOG_DEBUG("Received first acknowledgment after entering noack mode. Ignoring it.");
|
||||||
gdb_con->noack_mode = 2;
|
gdb_con->noack_mode = 2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue