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

2022-09-04 02:53:26

在 Eclipse 和 Tomcat (wtp) 中处理 web 应用程序时,tomcat 会崩溃并创建一个文件:hs_err_pid20216.log

我试图使用eclipse MAT来分析文件,但MAT无法将文件识别为它可以处理的东西,我也尝试了DAT,它是同样的事情。它不会显示在打开的文件对话框中。

它是什么样的文件?

我应该用什么来分析它?

我是否必须对此文件进行更改,以便这些工具可以解析它。

日志文件可用作 GitHub 要点

更新:

请参阅@Dan Cruz 回复,了解有关如何处理hs_err_pidXYZ.log文件的更多信息。出于好奇,坠机的原因是杰克逊被循环关系(双向一对多)所迷惑,但这是另一个故事......


答案 1

它是什么样的文件?

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

我应该用什么来分析它?

首先下载 OpenJDK 6 源代码包。在热点文件中搜索错误日志中的字符串。查看源文件,了解错误日志包含的内容的说明。*.cpp

例如,使用OpenJDK 7源,您可以在os_linux.cpp方法中找到(操作系统进程信号信息),在os_linux_x86.cpp方法中找到(CPU寄器的值)等。siginfoos::print_siginfo()Registersos::print_context()

我是否必须对此文件进行更改,以便这些工具可以解析它。

这是不可能的,因为 Eclipse Memory Analyzer 需要一个堆文件,而 HotSpot 错误日志则不然。


答案 2

https://fastthread.io 对文件进行了良好的描述性分析。它只需要上传它,它将给出以下项目:

  1. 崩溃原因
  2. 推荐解决方案
  3. 活动线程(当应用程序崩溃时)
  4. 核心转储位置
  5. 所有线程
  6. ...

推荐