14

在 Eclipse 和 Tomcat (wtp) 中处理 webapp 时,tomcat 崩溃并创建一个文件:hs_err_pid20216.log

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

它是什么样的文件?

我应该用什么来分析它?

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

日志文件可作为GitHub gist

更新:

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

4

3 回答 3

9

它是什么样的文件?

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

我应该用什么来分析它?

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

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

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

这是不可能的,因为Eclipse 内存分析器需要一个堆文件,而 HotSpot 错误日志则不需要。

于 2012-04-10T11:33:43.200 回答
5

https://fastthread.io对文件进行了很好的描述性分析。它只需要上传它,它会提供以下项目:

  1. 崩溃的原因
  2. 推荐解决方案
  3. 活动线程(当应用程序崩溃时)
  4. 核心转储位置
  5. 所有线程
  6. ...
于 2019-05-05T08:09:00.180 回答
2

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

于 2012-04-10T10:35:20.040 回答