我可以使用serviceability代理通过pid成功附加到Java live进程。但是无法用它打开核心转储,并且出现错误" windbg错误:OpenDumpFile失败"使用可维护性代理打开核心转储时。
顺便说一句,我使用以下命令捕获转储,如果省略-F,它将挂起。
jmap.exe -F -dump:format = b,file = c:\ temp \ HeapDump.hprof pid
The environment:
win 7 64, JDK 7.0(hotspot)
答案 0 :(得分:2)
堆转储不是核心转储。
jmap
生成的堆转储可以在VisualVM,Eclipse Memory Analyzer,YourKit Java Profiler等工具中打开。
核心转储(或Windows术语中的Minidump)由操作系统或WinDbg
等调试程序编写。 jmap
也可用于extract a heap dump from a minidump。
答案 1 :(得分:0)
尝试在命令行中使用这样的jstack:
jstack 10776 e:\dump.txt
将数字10776
替换为您自己的java进程ID。