Jmap - 连接到远程调试服务器时出错

时间:2014-03-28 09:13:17

标签: jmap

我的要求是使用Jmap创建远程服务器堆内存的转储文件。 我这样做了。

jmap -dump:file=remoteDump.txt,format=b 3104

这很好,因为3104是来自我本地机器的进程的pid。 如何使用远程服务器执行相同的操作? 我试过了

jmap -dump:file=remoteDump.txt,format=b 3104 54.197.228.33:8080

但它失败了。 我尝试使用jsadebugd创建一个调试服务器,如下所示。  1.开始的rmiregistry

  

rmiregistry -J-Xbootclasspath / p:$ JAVA_HOME / lib / sa-jdi.jar

2.Ran jsadebugd

>jsadebugd 11594 54.197.228.33:9009

但是第2步抛出了以下错误:

Error attaching to process or starting server: sun.jvm.hotspot.debugger.D
Exception: Windbg Error: WaitForEvent failed!
        at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.attach0(Na
thod)
        at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.attach(Win
ggerLocal.java:152)
        at sun.jvm.hotspot.HotSpotAgent.attachDebugger(HotSpotAgent.java:
        at sun.jvm.hotspot.HotSpotAgent.setupDebuggerWin32(HotSpotAgent.j
)
        at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:3
        at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:313)
        at sun.jvm.hotspot.HotSpotAgent.startServer(HotSpotAgent.java:220
        at sun.jvm.hotspot.DebugServer.run(DebugServer.java:106)
        at sun.jvm.hotspot.DebugServer.main(DebugServer.java:45)
        at sun.jvm.hotspot.jdi.SADebugServer.main(SADebugServer.java:55)

帮助我摆脱它。

1 个答案:

答案 0 :(得分:2)

你无法附加到进程的原因可能就是你已准备好附加到某个debuger或在其jmap正在运行的其他可视机器上执行。

尝试确保该流程未附加到任何debuger并且您附加到同一个VM。