1、这个问题最初的起源是我的Android studio的Terminal不能用,如下图
2、我发现intellij idea等全家桶的Terminal的全家桶都不能用。
3、我追踪日志文件,发现他们Terminal都用了一个叫winpty的开源软件,地址https://github.com/rprichard/...,附上idea.log的日志
java.util.concurrent.ExecutionException: Failed to start [cmd.exe] in D:/AndroidStudioProjects/demo
at org.jetbrains.plugins.terminal.LocalTerminalDirectRunner.createProcess(LocalTerminalDirectRunner.java:225)
at org.jetbrains.plugins.terminal.LocalTerminalDirectRunner.createProcess(LocalTerminalDirectRunner.java:48)
at org.jetbrains.plugins.terminal.AbstractTerminalRunner.lambda$openSessionInDirectory$4(AbstractTerminalRunner.java:208)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:294)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Couldn't create PTY
at com.pty4j.windows.WinPtyProcess.<init>(WinPtyProcess.java:75)
at com.pty4j.windows.WinPtyProcess.<init>(WinPtyProcess.java:50)
at com.pty4j.PtyProcessBuilder.start(PtyProcessBuilder.java:109)
at com.pty4j.PtyProcess.exec(PtyProcess.java:78)
at com.pty4j.PtyProcess.exec(PtyProcess.java:49)
at org.jetbrains.plugins.terminal.LocalTerminalDirectRunner.createProcess(LocalTerminalDirectRunner.java:217)
... 8 more
Caused by: com.pty4j.PtyException: Error starting winpty: lost connection to agent
at com.pty4j.windows.WinPty.<init>(WinPty.java:93)
at com.pty4j.windows.WinPtyProcess.<init>(WinPtyProcess.java:72)
... 13 more
4、我发现MINGW64也用了winpty,然后我试了下命令。如下图
5、再然后我打开的winpty-debugserver,看下调试报什么错,结果如下图
附上日志:
[32283.471 winpty.exe,p11504,t22452]: Windows version: 10.0.18363 SP0.0 Client X64 kernel32.dll:F:10.0.18362.778/P:10.0.18362.778 ConEmuHk64.dll:none
[32283.471 winpty.exe,p11504,t22452]: winpty version 0.4.3 (commit none)
[32283.479 winpty.exe,p11504,t22452]: Created agent successfully, pid=18732, cmdline="C:Program FilesGitusrinwinpty-agent.exe" \.pipewinpty-control-11504-1-1d6234e6f3dcc86-0f22a1978b66390c64823126a5db1f86 8 1 80 24
[32283.552 winpty.exe,p11504,t22452]: libwinpty error: code=3 msg='lost connection to agent'
[32283.561 winpty-agent.exe,p18732,t22116]: Windows version: 10.0.18363 SP0.0 Client X64 kernel32.dll:F:10.0.18362.778/P:10.0.18362.778 ConEmuHk64.dll:none
[32283.561 winpty-agent.exe,p18732,t22116]: winpty version 0.4.3 (commit none)
[32283.561 winpty-agent.exe,p18732,t22116]: Agent::Agent entered
[32283.564 winpty-agent.exe,p18732,t22116]: Attempting to detect new Windows 10 console using MARK: detected
[32283.564 winpty-agent.exe,p18732,t22116]: connected to [\.pipewinpty-control-11504-1-1d6234e6f3dcc86-0f22a1978b66390c64823126a5db1f86], handle == ffffffffffffffff
[32283.564 winpty-agent.exe,p18732,t22116]: Assertion failed: handle != INVALID_HANDLE_VALUE && "Could not connect to pipe", file src/agent/NamedPipe.cc, line 268
我的系统是win10专业版,版本号1909.这个问题只出现在我工作的电脑上,我看了其他同事的电脑都没问题,我家里电脑也是win10,也没问题。
由于我对c++代码不熟,win api也了解少。所以排查起来很困难。希望大家能帮我解决下,非常感谢!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…