问题描述
在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.
日志文件以
更新:
有关如何处理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...
推荐答案
这是一个HotSpot错误日志文件文本格式。
It's a HotSpot error log file in text format.
首先下载。在错误日志中搜索字符串的热点 *。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 $ <$ href =http://hg.openjdk.java的
os :: print_siginfo()
方法中的c $ c>(操作系统进程信号信息)。 net / jdk7 / jdk7 / hotspot / file / 81d815b05abb / src / os / linux / vm / os_linux.cpp\"rel =noreferrer> os_linux.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.
这是不可能的,因为需要一个堆文件,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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!