X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Frtos%2Frtos.c;h=263795c6d89d928af5b85ab189d6efd33ea8a9c8;hb=898dd3af46e76fb195c6894f54e9bc9272375ffb;hp=9eed08e0e1787ab05b1f890bb2de62ddc54a226c;hpb=a57daf23db62738754c309dfcda0f4f3cfa62fa6;p=openocd.git diff --git a/src/rtos/rtos.c b/src/rtos/rtos.c index 9eed08e0e1..263795c6d8 100644 --- a/src/rtos/rtos.c +++ b/src/rtos/rtos.c @@ -314,15 +314,14 @@ int gdb_thread_packet(struct connection *connection, struct target *target, char int symbol_num; char* found = strstr( packet, "qSymbol::" ); - int numconv; if (0 == found ) { - numconv =sscanf(packet, "qSymbol:%" SCNx64 ":%s", &value, hex_name_str); + sscanf(packet, "qSymbol:%" SCNx64 ":%s", &value, hex_name_str); } else { // No value returned by GDB - symbol was not found - numconv =sscanf(packet, "qSymbol::%s", hex_name_str); + sscanf(packet, "qSymbol::%s", hex_name_str); } name_str = (char*) malloc( 1+ strlen(hex_name_str) / 2 ); @@ -453,7 +452,17 @@ int gdb_thread_packet(struct connection *connection, struct target *target, char } else if (strstr(packet, "qC")) { - gdb_put_packet(connection, "QC0", 3); + if( target->rtos!=NULL ) + { + char buffer[15]; + int size; + size = snprintf(buffer, 15, "QC%08X", (int)target->rtos->current_thread); + gdb_put_packet(connection, buffer, size); + } + else + { + gdb_put_packet(connection, "QC0", 3); + } return ERROR_OK; } else if ( packet[0] == 'T' ) // Is thread alive?