microsoft / microsoft/vscode-java-debug

Unable to Debug/Attch Java Maven on Vscode

未关闭
#1,382 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

ai-triaged attach question
主要语言
TypeScript
星标
591
派生
429
平均合并
1 天 9 小时
30 天内合并 PR
19

描述

Unable to debug Java Maven Project.

Environment
  • Operating System: Win10 Enterprise . Build No : 19045.3208 version : 22H2
  • JDK version: 1.8.0_281
  • Visual Studio Code version: 1.81.1 User Setup
  • Java extension version: 0.25.13
  • Java Debugger extension version: v0.54.0
Steps To Reproduce
  1. Vs code setting.json
{
    
    "update.mode": "none",
    "workbench.startupEditor": "none",
    "telemetry.telemetryLevel": "off",
    "java.autobuild.enabled": false,
    "java.configuration.runtimes": [
        {
            "name": "JavaSE-1.8",
            "default": true,
            "path": "C:\\Program Files\\Java\\jdk1.8.0_281"
        }
    ]
}
  1. java debug log file

!ENTRY java-debug 1 0 2023-08-29 22:05:54.430
!MESSAGE Trying to attach to remote debuggee VM localhost:61739 .

!ENTRY java-debug 4 0 2023-08-29 22:05:54.468
!MESSAGE [error response][attach]: Failed to attach to remote debuggee VM. Reason: java.net.ConnectException: Connection refused: connect
!STACK 0
com.microsoft.java.debug.core.DebugException: Failed to attach to remote debuggee VM. Reason: java.net.ConnectException: Connection refused: connect
at com.microsoft.java.debug.core.adapter.AdapterUtils.createCompletionException(AdapterUtils.java:266)
at com.microsoft.java.debug.core.adapter.handler.AttachRequestHandler.handle(AttachRequestHandler.java:81)
at com.microsoft.java.debug.core.adapter.DebugAdapter.lambda$dispatchRequest$0(DebugAdapter.java:94)
at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source)
at com.microsoft.java.debug.core.adapter.DebugAdapter.dispatchRequest(DebugAdapter.java:93)
at com.microsoft.java.debug.core.adapter.ProtocolServer.dispatchRequest(ProtocolServer.java:118)
at com.microsoft.java.debug.core.protocol.AbstractProtocolServer.lambda$new$0(AbstractProtocolServer.java:81)
at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Unknown Source)
at java.base/sun.nio.ch.Net.connect(Unknown Source)
at java.base/sun.nio.ch.NioSocketImpl.connect(Unknown Source)
at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at java.base/java.net.Socket.(Unknown Source)
at java.base/java.net.Socket.(Unknown Source)
at org.eclipse.jdi.internal.connect.SocketTransportService$2.run(SocketTransportService.java:147)
... 1 more

Launch setting file

{
				"type": "java",
				"name": "Attach Service",
				"request": "attach",
				"processId" : "${command:PickJavaProcess}",
				"timeout": 300000

			}
Current Result

When the type is launch in Launch setting , the debugger starts but after a certain time period the debugger stops , but application is in running mode in the backend . on Debugger console I can see "ERROR: transport error 202: recv error: Connection reset by peer".
So I tried to do attach java process , Vscode is not able to attach , it shows the java process on popup , when I click on it , it throws error dialog saying "Failed to attach remote debuggee VM. Reason java.net.connectException:connection refused connect"

Expected Result

debugger should work

Additional Informations

Back 5/6months ago , I was able to do the debugging correct with the same project on vscode , then I recently updated it to debug the same project and its throwing exception now.

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先使用所示的 setting.json 和 Java 启动配置复现该故障,然后检查 AttachRequestHandler.java 附近的 java-debug 日志以及 connection-refused 错误。比较所报告的 Windows 和 JDK 版本下的启动与 attach 行为;完成的标准是调试器保持连接并能够 attach 到选定的 Java 进程。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, vscode
领域
developer-experience, devtools
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。