[英]Unable to connect Serviceable Agent (sun.jvm.hotspot.HSDB) to running jvm on windows 7 (32 Bit)
按照链接,我可以通过以下步骤成功将HSDB连接到Ubuntu上正在运行的jvm进程:
set SA_JAVA=/usr/lib/jvm/java-8-oracle/bin/java
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
java -Dsun.jvm.hotspot.debugger.useProcDebugger=true -classpath /usr/lib/jvm/java-8-orcale/lib/sa-jdi.jar sun.jvm.hotspot.HSDB
对于Windows 7 32位,并且从同一链接,我尝试将sun.jvm.hotspot.HSDB与正在运行的jvm进程连接,但我面临以下问题:
set PATH=C:\\Program Files\\Java\\jdk1.8.0_40\\bin;d:\\windbg;%PATH%
。 但是在上面的命令中,我找不到d:\\windbg
。 对于这种依赖性,我经常使用Google并已安装了Microsoft Windows Debugger,但安装后它具有不同的文件夹层次结构( c:\\WinDDK\\7600.16385.1
)。 "windbg"
并执行以下命令。 给出以下屏幕。 在上面的屏幕上,我输入了从Windows任务管理器收集的运行jvm process id
,然后单击“确定”按钮。 出现以下屏幕并引起异常。 我知道我遵循的链接很旧。 如何在Windows上运行sun.jvm.hotspot.HSDB
。 还是我应该遵循其他工具? 问题是,您正在从jdk的 jre指令中使用java.exe
启动hdsb。 这就是为什么它在您的jre\\bin
(找不到该文件)而不是jdk\\bin
(该dll所在的文件)中寻找sawindbg.dll
的原因。 您可以在LinkError错误消息中看到它。
因此使用:
C:\\Program Files\\Java\\jdk1.8.0_40\\bin\\java.exe -cp C:\\Program Files\\Java\\jdk1.8.0_40\\lib\\sa-jdi.jar sun.jvm.hotspot.HSDB
或者最好更改路径,以始终在jdk中使用java.exe
。 其他工具对jre one也有问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.