aboutsummaryrefslogtreecommitdiff
path: root/src/rtos/rtos.c
diff options
context:
space:
mode:
authorSpencer Oliver <spen@spen-soft.co.uk>2012-10-26 12:59:29 +0100
committerPeter Stuge <peter@stuge.se>2012-10-28 01:41:14 +0000
commitd2e8ce14789713266bb073db331870f5909dd45f (patch)
tree2eddee8bebab118ae1799f4b3becd9e20d553c98 /src/rtos/rtos.c
parent538a86c3395d0476d2fdcc9bddc4e9e550734c96 (diff)
downloadriscv-openocd-d2e8ce14789713266bb073db331870f5909dd45f.zip
riscv-openocd-d2e8ce14789713266bb073db331870f5909dd45f.tar.gz
riscv-openocd-d2e8ce14789713266bb073db331870f5909dd45f.tar.bz2
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 <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/933 Tested-by: jenkins Reviewed-by: Matthias Blaicher <matthias@blaicher.com> Reviewed-by: Peter Stuge <peter@stuge.se>
Diffstat (limited to 'src/rtos/rtos.c')
-rw-r--r--src/rtos/rtos.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/rtos/rtos.c b/src/rtos/rtos.c
index 349f84d..28bbe5e 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];