如何分析JVM崩溃文件hs_err_pidXYZ.log [英] How to analyze JVM crash file hs_err_pidXYZ.log

查看:776
本文介绍了如何分析JVM崩溃文件hs_err_pidXYZ.log的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

When working on a webapp in Eclipse and Tomcat (wtp) , tomcat crashes and create a file: hs_err_pid20216.log

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

I tried to use eclipse MAT to analyse the file but MAT doesn't recognize the file as something it can handle, I tried also DAT and it was the same thing. It won't show in the open file dialog.

它是什么类型的文件?

应该怎样我用它来分析它吗?

What should I use to analyze it?

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

Do I have to make changes to this file so that it will be possible for these tools to parse it.

日志文件以 GitHub gists

更新:

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

See @Dan Cruz reply for more information on how to deal with hs_err_pidXYZ.log file. For curious, the cause of the crash was Jackson being confused by a cyclic relationship (bidirectional one-to-many) but this is another story...

推荐答案


它是什么类型的文件?

What kind of file it is?

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

It's a HotSpot error log file in text format.


我应该用什么来分析它?

What should I use to analyze it?

首先下载 OpenJDK 6源包。在错误日志中搜索字符串的热点 *。cpp 文件。查看源文件以获取错误日志包含的说明。

Start by downloading the OpenJDK 6 source bundle. Search through the hotspot *.cpp files for strings in the error log. Review the source files for an explanation of what the error log contains.

例如,使用OpenJDK 7源,您可以找到 siginfo os :: print_siginfo()方法中的c $ c>(操作系统进程信号信息)。 net / jdk7 / jdk7 / hotspot / file / 81d815b05abb / src / os / linux / vm / os_linux.cpp\"rel =noreferrer> os_linux.cpp os :: print_context()方法中注册(CPU寄存器的值) http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/81d815b05abb/src/os_cpu/linux_x86/vm/os_linux_x86.cpp\"rel =noreferrer> os_linux_x86.cpp 等。

For example, using OpenJDK 7 sources, you can find siginfo (the operating system process signal information) in the os::print_siginfo() method of os_linux.cpp, Registers (the CPU registers' values) in the os::print_context() method of os_linux_x86.cpp, etc.


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

Do I have to make changes to this file sothat it will be possible for these tools to parse it.

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

That would be impossible since the Eclipse Memory Analyzer requires a heap file, which the HotSpot error log is not.

这篇关于如何分析JVM崩溃文件hs_err_pidXYZ.log的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆