diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index 756acc64c68c09897c545816969b570e15aec1a5..0f74ac4ea9e4da5b2e127c888196f21fdd7a493f 100644
--- a/ch32v003fun/ch32v003fun.mk
+++ b/ch32v003fun/ch32v003fun.mk
@@ -28,11 +28,19 @@ $(TARGET).bin : $(TARGET).elf
 	$(PREFIX)-objcopy -O binary $< $(TARGET).bin
 	$(PREFIX)-objcopy -O ihex $< $(TARGET).hex
 
+ifeq ($(OS),Windows_NT)
+closechlink :
+	-taskkill /F /IM minichlink.exe /T
+else
+closechlink :
+	-killall minichlink
+endif
+
 monitor : 
 	$(MINICHLINK)/minichlink -T
 
 gdbserver : 
-	$(MINICHLINK)/minichlink -G || true
+	-$(MINICHLINK)/minichlink -beG
 
 cv_flash : $(TARGET).bin
 	make -C $(MINICHLINK) all
diff --git a/examples/debugprintfdemo/.vscode/launch.json b/examples/debugprintfdemo/.vscode/launch.json
index 3ba758bc90ea0311e7712bc4e6234cd654e31667..13c1789250ae8fa5f5349aa6ec0a1d8c705f282f 100644
--- a/examples/debugprintfdemo/.vscode/launch.json
+++ b/examples/debugprintfdemo/.vscode/launch.json
@@ -19,7 +19,7 @@
 				"ignoreFailures": true
 			}
 			],
-			"miDebuggerPath": "/usr/bin/gdb-multiarch",
+			"miDebuggerPath": "gdb-multiarch",
 			"miDebuggerServerAddress": "127.0.0.1:2000"
 		},
 		{
diff --git a/examples/debugprintfdemo/.vscode/tasks.json b/examples/debugprintfdemo/.vscode/tasks.json
index 0e0393d24a811b9c4c676639d87596e350ec39e1..d086ce2071367d63333095ab57bba8615df8f184 100644
--- a/examples/debugprintfdemo/.vscode/tasks.json
+++ b/examples/debugprintfdemo/.vscode/tasks.json
@@ -11,12 +11,12 @@
 				"panel": "shared",
 				"showReuseMessage" : false
 			},
-			"command": "killall minichlink; make flash",
+			"command": "make closechlink flash",
 		},
 		{
 			"type": "shell",
 			"label": "run_flash_and_gdbserver",
-			"command": "killall minichlink; make flash gdbserver",
+			"command": "make closechlink flash gdbserver",
 
 			"presentation": {
 				"echo": true,
diff --git a/minichlink/microgdbstub.h b/minichlink/microgdbstub.h
index b55cfea3132b3e6a99ba1f1ab50c77b84483a762..7b6647b333d40ac8bb1b0e53f4af1ba9b348c8af 100644
--- a/minichlink/microgdbstub.h
+++ b/minichlink/microgdbstub.h
@@ -183,6 +183,7 @@ void HandleGDBPacket( void * dev, char * data, int len )
 		break;
 	case 'c':
 	case 'C':
+	case 's':
 		RVDebugExec( dev, (cmd == 'C')?4:2 );
 		SendReplyFull( "OK" );
 		break;
diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe
index bbf21f1713659adb1607a37fd96274ece88cc575..eda0a5a992c0971a374653f4e5e505ddabd6859f 100644
Binary files a/minichlink/minichlink.exe and b/minichlink/minichlink.exe differ