如何分析JVM崩溃文件hs_err_pidXYZ.log

16

当在Eclipse和Tomcat(WTP)上开发Web应用程序时,Tomcat崩溃并创建了一个名为hs_err_pid20216.log的文件。

我尝试使用Eclipse MAT分析该文件,但是MAT没有识别出这个文件。 我还尝试了DAT,结果也一样。它不会显示在打开文件对话框中。

这是什么类型的文件?

我应该使用什么工具来分析它?

我是否需要更改此文件,以便这些工具可以解析它?

该日志文件可在GitHub gist上找到。

更新:

有关如何处理hs_err_pidXYZ.log文件的更多信息,请参见@Dan Cruz的回复。 对于好奇心,崩溃的原因是Jackson被循环关系(双向一对多)所困扰,但这是另一件事……

3个回答

10

这是什么类型的文件?

这是一个文本格式的HotSpot错误日志文件。

我应该使用什么工具来分析它?

首先需要下载OpenJDK 6源代码包。在错误日志中查找字符串时搜索hotspot的*.cpp文件。通过查看源文件了解错误日志的含义。

例如,使用OpenJDK 7源代码,您可以在os_linux.cpp文件的os::print_siginfo()方法中查找操作系统进程信号信息siginfo,在os_linux_x86.cpp文件的os::print_context()方法中查找CPU寄存器的值Registers等。

我需要对这个文件进行修改以便这些工具能够解析它吗?

不行,因为Eclipse Memory Analyzer需要堆文件,而HotSpot错误日志不是堆文件。


7

https://fastthread.io提供了对文件的详细描述分析。只需上传文件,即可获得以下信息:

  1. 崩溃原因
  2. 建议解决方案
  3. 应用程序崩溃时的活动线程
  4. Core Dump位置
  5. 所有线程
  6. ...

1
https://fastthread.io/ 只分析线程转储,而不是致命错误日志文件。 - Captainju
只需要上传一个日志文件,该网站就会接收并基于它给出一些建议。 - Tilo
@Captainju fastthread.io也会分析hs_err_pid文件。 - Mahesh

2

这是一个文本文件,请在编辑器中打开并尝试理解其含义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接