diff options
author | Spencer Oliver <spen@spen-soft.co.uk> | 2012-10-26 12:59:29 +0100 |
---|---|---|
committer | Peter Stuge <peter@stuge.se> | 2012-10-28 01:41:14 +0000 |
commit | d2e8ce14789713266bb073db331870f5909dd45f (patch) | |
tree | 2eddee8bebab118ae1799f4b3becd9e20d553c98 /src/rtos/rtos.c | |
parent | 538a86c3395d0476d2fdcc9bddc4e9e550734c96 (diff) | |
download | riscv-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.c | 4 |
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]; |