【问题标题】:Get error "windbg error:OpenDumpFile failed" when open the core dump with serviceability agent使用可维护性代理打开核心转储时出现错误“windbg 错误:OpenDumpFile failed”
【发布时间】:2017-02-03 03:12:58
【问题描述】:

我可以通过 pid 使用 serviceability agent 成功附加到 Java 实时进程,但是无法使用它打开核心转储,并且在使用 serviceability agent 打开核心转储时出现错误“windbg error:OpenDumpFile failed”。

顺便说一句,我使用以下命令捕获转储,如果我省略 -F,它将挂起。

jmap.exe -F -dump:format=b,file=c:\temp\HeapDump.hprof pid

The environment:
win 7 64, JDK 7.0(hotspot)

【问题讨论】:

    标签: java debugging jvm


    【解决方案1】:

    堆转储不是核心转储。

    jmap 生成的堆转储可以在 VisualVM、Eclipse Memory Analyzer、YourKit Java Profiler 等工具中打开。

    核心转储(或 Windows 术语中的 Minidump)由操作系统或调试器(如 WinDbg)编写。 jmap也可以用于extract a heap dump from a minidump

    【讨论】:

    • 它在我通过 Windows 任务管理器创建转储后工作。最近几天在您的 SA 指导下,我在这方面取得了很大进展,感谢您的帮助:-)。顺便说一句,Linux 中的核心转储似乎更像是 Windows 下的完整转储,因为迷你转储只包含线程相关信息,迷你转储更可能是 Java 的线程转储。 download.microsoft.com/download/b/8/b/…
    • 只是一个附加说明。当 -F 选项位于 -dump 选项之后时,我们奇怪地遇到了一个 windbg 错误,但将其移至第一个选项可以解决问题。
    【解决方案2】:

    尝试在命令行中像这样使用 jstack:

    jstack 10776 e:\dump.txt
    

    将数字10776 替换为您自己的java 进程ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多