调试器无法附加:握手期间接收失败:尝试使用 jconsole 附加时资源暂时不可用,但适用于调试器

问题描述 投票:0回答:1

我有一个运行如下的java进程

tomcat   3400481  2.1 19.3 6323248 1579708 ?     Sl   Feb08  32:20 /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Xms1024M -Xmx2048M -server -XX:+UseParallelGC -javaagent:/opt/opentelemetry-javaagent.jar -javaagent:/opt/tomcat/jmx_prometheus_javaagent-0.19.0.jar=9092:/opt/tomcat/tomcat.yml -Dignore.endorsed.dirs= -classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat -Dcatalina.home=/opt/tomcat -Djava.io.tmpdir=/opt/tomcat/temp -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n org.apache.catalina.startup.Bootstrap start

通过端口转发到这台机器,我可以使用 Intellij Idea 的 JVM 调试器轻松附加到此进程,在

catalina.out
中,我看到了唯一这样的日志条目:

Listening for transport dt_socket at address: 8000

没有任何提示,我只是看到调试开始并且它有效

当我用

jconsole
附加到相同内容时,我在日志中看到:

Debugger failed to attach: handshake failed - received >< - expected >JDWP-Handshake<
Debugger failed to attach: recv failed during handshake: Resource temporarily unavailable

并且 JConsole 拒绝连接:

error during jrmp connection establishment nested exception is java.io.eofexception

造成这种不同行为的原因是什么?

Jconsole
与运行远程调试的 java (JDK 9) 版本相同。

目前我没有任何详细信息,也不知道要检索什么样的详细信息来解决问题。如果某些聪明的驴子知道需要哪种细节,欢迎他们发表评论,询问需要哪种细节来澄清问题。在我看来,很明显 Intellij Idea 调试器使用与 JConsole 相同的协议。

java remote-debugging jmx jconsole jdwp
1个回答
0
投票
 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.122.97.13
添加

是为了解决该问题。

了解调试所需的

-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
与 jconsole 所需的 jmx 远程不同,这一点非常重要。

© www.soinside.com 2019 - 2024. All rights reserved.