src/goDebugFactory: fix debugger launch on Windows

https://go-review.googlesource.com/c/vscode-go/+/342632 introduced
a bug. On windows, tests fail with

-> server: {"type":"request","seq":1,"command":"initialize","arguments":{"adapterID":"go","linesStartAt1":true,"columnsStartAt1":true,"pathFormat":"path"}}
<- server: {"seq":0,"type":"response","request_seq":1,"success":false,"command":"initialize","message":"Couldn't start dlv dap:\nTypeError: Cannot read property 'on' of undefined"}
<- server: {"seq":0,"type":"event","event":"output","body":{"category":"stdout","output":"DAP server listening at: 127.0.0.1:59678\n"}}
<- server: {"seq":0,"type":"event","event":"output","body":{"category":"stderr","output":"2021-08-27T22:34:12Z debug layer=dap DAP server pid = 3344\n"}}

rejected promise not handled within 1 second: Error: Couldn't start dlv dap:
TypeError: Cannot read property 'on' of undefined
stack trace: Error: Couldn't start dlv dap:
TypeError: Cannot read property 'on' of undefined
	at d:\a\vscode-go\vscode-go\node_modules\vscode-debugadapter-testsupport\lib\protocolClient.js:29:35
	at DebugClient.dispatch (d:\a\vscode-go\vscode-go\node_modules\vscode-debugadapter-testsupport\lib\protocolClient.js:91:17)
	at DebugClient.handleData (d:\a\vscode-go\vscode-go\node_modules\vscode-debugadapter-testsupport\lib\protocolClient.js:57:30)
	at Socket.<anonymous> (d:\a\vscode-go\vscode-go\node_modules\vscode-debugadapter-testsupport\lib\protocolClient.js:19:18)
	at Socket.emit (events.js:315:20)
	at addChunk (internal/streams/readable.js:309:12)
	at readableAddChunk (internal/streams/readable.js:284:9)
	at Socket.Readable.push (internal/streams/readable.js:223:10)
	at TCP.onStreamRead (internal/stream_base_commons.js:188:23)

Change-Id: Ic7a727dcb4cd3a2c2fd9643cb41dc7dfdc1f91be
GitHub-Last-Rev: 7930884a3b8c069834c5e4c992207d2e02094375
GitHub-Pull-Request: golang/vscode-go#1728
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/345711
Trust: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Suzy Mueller <suzmue@golang.org>
diff --git a/src/goDebugFactory.ts b/src/goDebugFactory.ts
index 878b4b8..c670153 100644
--- a/src/goDebugFactory.ts
+++ b/src/goDebugFactory.ts
@@ -439,7 +439,7 @@
 		p.stderr.on('data', (chunk) => {
 			logErr(chunk.toString());
 		});
-		p.stdio[3].on('data', (chunk) => {
+		p.stdio[3]?.on('data', (chunk) => {
 			const msg = chunk.toString();
 			if (!started && msg.startsWith('DAP server listening at:')) {
 				stopWaitingForServerToStart();
@@ -456,10 +456,11 @@
 				logConsole(msg);
 			}
 		});
-		p.stdio[3].on('close', () => {
+		p.stdio[3]?.on('close', () => {
 			// always false on windows.
 			logDestStream?.end();
 		});
+
 		p.on('close', (code, signal) => {
 			// TODO: should we watch 'exit' instead?