如何分析 .mdmp 文件?

2022-09-04 04:13:26

我有一个Java应用程序在生产中崩溃。它在 dev/QA 中不会这样做。jvm 正在创建一个 .mdmp 文件和一个文本文件。如何分析二进制转储文件?我用谷歌搜索,但没有运气。我们使用的是bea jrockit jvm 1.5 R27。


答案 1

该文件是一个 Windows 小型转储文件,您只能使用调试器(如 WinDbg)读取该文件。通常,您需要崩溃的应用程序的源才能真正从转储中获取一些信息。因此,在您的情况下,除了联系JRockit支持之外,您无能为力。.mdmp

这里有一个关于JVM crahes的Olace JRockit信息的链接。


答案 2

.mdmp文件是 Windows 相当于 unix/linux 核心转储。您可以使用WinDBG分析它们,但如果它是一个已经崩溃的Java进程,那么您很可能会想要使用Java自己的工具来分析崩溃的进程。

如果你想查看崩溃的Java进程的堆,你可以使用JDK附带的工具,调用从.core或.mdmp中提取HPROF文件,然后将其加载到内存分析器中。另请注意,某些内存分析器可以直接加载核心转储和 Windows 小型转储。jmap

相关问题jmap 文档

如果要查看线程的状态,则可以使用调用的工具在创建转储时打印每个线程的堆栈跟踪。jstack docs.jstack