根据链接,我可以通过以下步骤成功地将HSDB连接到Ubuntu上运行的jvm进程:
set SA_JAVA=/usr/lib/jvm/java-8-oracle/bin/javaecho 0 | sudo tee /proc/sys/kernel/yama/ptrace_scopejava -Dsun.jvm.hotspot.debugger.useProcDebugger=true -classpath /usr/lib/jvm/java-8-orcale/lib/sa-jdi.jar sun.jvm.hotspot.HSDB对于Windows732位和相同的链接,我试图将sun.jvm.hotspot.HSDB连接到正在运行的sun.jvm.hotspot.HSDB进程,但我面临以下问题:
set PATH=C:\Program Files\Java\jdk1.8.0_40\bin;d:\windbg;%PATH%。但是在上面的命令中,我找不到d:\windbg。对于这种依赖性,我谷歌了很多,也安装了Microsoft,但是安装后它有不同的文件夹层次结构(c:\WinDDK\7600.16385.1)。"windbg"并执行了以下命令。
它提供了下面的屏幕。

在上面的屏幕上,我输入了运行中的jvm process id,这是我从Windows收集的,并单击OK按钮。出现以下屏幕并导致异常。


我知道我遵循的链接是非常古老的。如何在windows上运行sun.jvm.hotspot.HSDB。或者还有什么其他的工具值得我去做呢?
发布于 2016-11-17 12:19:06
问题在于,您正在使用来自您的java.exe jre而不是您的jre来启动hdsb。这就是为什么它在您的sawindbg.dll中寻找jre\bin (在那里找不到它),而不是在jdk\bin中查找它(在那里dll是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的问题。
https://stackoverflow.com/questions/29507788
复制相似问题