繁体   English   中英

无法将可维护代理(sun.jvm.hotspot.HSDB)连接到在Windows 7(32位)上运行的jvm

[英]Unable to connect Serviceable Agent (sun.jvm.hotspot.HSDB) to running jvm on windows 7 (32 Bit)

按照链接,我可以通过以下步骤成功将HSDB连接到Ubuntu上正在运行的jvm进程:

  1. (在Ubuntu终端上) set SA_JAVA=/usr/lib/jvm/java-8-oracle/bin/java
  2. (在Ubuntu终端上) echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
  3. (在Ubuntu终端上) 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进程连接,但我面临以下问题:

  1. (在命令提示符下) 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 )。
  2. 有一段时间我跳过了"windbg"并执行以下命令。 命令 给出以下屏幕。 Java进程ID屏幕 在上面的屏幕上,我输入了从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM