From d2e8ce14789713266bb073db331870f5909dd45f Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Fri, 26 Oct 2012 12:59:29 +0100 Subject: [PATCH] gdb: fix broken qCRC packet handling The rtos layer was incorrectly handling a qCRC packet as a qC packet. Make sure we check for the qCRC packet and return unhandled so the gdb server gets a chance to handle it. This packet is used in the gdb compare-sections cmd. Change-Id: I21f8e5fa7225fccd13d65cf9e40186895065a7e3 Signed-off-by: Spencer Oliver Reviewed-on: http://openocd.zylin.com/933 Tested-by: jenkins Reviewed-by: Matthias Blaicher Reviewed-by: Peter Stuge --- src/rtos/rtos.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/rtos/rtos.c b/src/rtos/rtos.c index 349f84df0..28bbe5ee1 100644 --- a/src/rtos/rtos.c +++ b/src/rtos/rtos.c @@ -342,6 +342,10 @@ int rtos_thread_packet(struct connection *connection, char *packet, int packet_s char offsets[] = "Text=0;Data=0;Bss=0"; gdb_put_packet(connection, offsets, sizeof(offsets)-1); return ERROR_OK; + } else if (strncmp(packet, "qCRC:", 5) == 0) { + /* make sure we check this before "qC" packet below + * otherwise it gets incorrectly handled */ + return GDB_THREAD_PACKET_NOT_CONSUMED; } else if (strncmp(packet, "qC", 2) == 0) { if (target->rtos != NULL) { char buffer[19];