2
我的需求是使用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.Started 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)
幫我把它弄出來。