首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何分析JVM崩溃时生成的大型核心转储

如何分析JVM崩溃时生成的大型核心转储
EN

Stack Overflow用户
提问于 2016-08-17 02:09:53
回答 2查看 3.9K关注 0票数 4

有一天,我使用Java的web应用程序崩溃了,生成了一个大的核心转储(5.5GB)。我试图使用IBM线程和监视器转储Java分析器来分析这个核心转储,但是在读取核心转储时,控制台说:

代码语言:javascript
复制
Exception in thread "Thread-0" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:569)
at java.lang.StringBuffer.append(StringBuffer.java:369)
at java.io.BufferedReader.readLine(BufferedReader.java:370)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at com.ibm.jinwoo.thread.FileTask.processThreadDump(FileTask.java:1858)
at com.ibm.jinwoo.thread.FileTask$ActualTask.<init>(FileTask.java:215)
at com.ibm.jinwoo.thread.FileTask$1.construct(FileTask.java:1368)
at com.ibm.jinwoo.thread.ThreadHandler$1.run(ThreadHandler.java:31)
at java.lang.Thread.run(Thread.java:745)

似乎核心文件太大,无法用这个工具进行分析。使用-Xmx10g选项增加堆大小不起作用。

什么工具可以用来分析这么大的核心文件?

更新的2016-08-17 13:07:我尝试使用Eclipse工具,但是当我试图读取转储文件时遇到了以下错误。

代码语言:javascript
复制
Error opening heap dump 'jvm-core.13074'. Check the error log for further details.
Error opening heap dump 'jvm-core.13074'. Check the error log for further details.
Not a HPROF heap dump (java.io.IOException)
Not a HPROF heap dump

我是否需要做某种预处理,或者什么东西,使转储文件可读的Eclipse MAT工具?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-18 13:51:36

这个核心文件似乎不适用于与Java相关的工具,如Eclipse工具或IBM和Monitor for Java。核心文件的工具是gdbpmappstack。我以为我可以调试应用程序崩溃JVM的原因,但是核心文件似乎没有什么关于应用程序级别的信息。

票数 1
EN

Stack Overflow用户

发布于 2016-08-17 02:42:42

我在月蚀垫工具上取得了巨大的成功。还可以像在Eclipse中一样,通过更改安装文件夹中的.ini文件来调整其堆。但是,在加载堆转储之前,请确保您的PC上有足够的RAM可用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38987073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档