Interpretation of the virtual machine crash file hs_err_pidxxxx.log

1. How to get this log file


If there is a serious error that causes the Java process to exit abnormally, we call it Crash, and a log file will be generated at this time. By default, this file will be generated in the working directory. However, the location and naming rules of this file can be changed through the following settings in the Java startup parameters. For example:
java -XX:ErrorFile=/var/log/java/java_error_%p.log
puts this error file under /var/log/java and appears in the form of java_error_pid.log.

2. Foreword

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77dd6641, pid=4612, tid=0x0000031c
#
# JRE version: Java(TM) SE Runtime Environment (8.0_171-b11) (build 1.8.0_171-b11)
# Java VM: Java HotSpot(TM) Client VM (25.171-b11 mixed mode windows-x86 )
# Problematic frame:
# C  [ntdll.dll+0x46641]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

There are a lot of useful information in the file header, "EXCEPTION_ACCESS_VIOLATION" means that when the Java application Crash,

The JVM's own code is running, not external Java code or other class library code. This situation is likely to be a JVM bug, but

not always. In addition to "EXCEPTION_ACCESS_VIOLATION", there may be other information, such as "SIGSEGV(0xb)",

Means that the JVM is executing local or JNI code; "EXCEPTION_STACK_OVERFLOW" means that this is a stack overflow error.

SIGSEGV(0xb) means that JNI code is being executed when JVM Crash. A common description is EXCEPTION_ACCESS_VIOLATIONthat this description means that JVM's own code is being executed when JVM Crash. This is often caused by Crash caused by JVM bugs; another common description is EXCEPTION_STACK_OVERFLOW, The description indicates that this is an error caused by a stack overflow, which is often caused by deep recursion in the application.

FrameType Description:

C indicates that the frame type is a local frame, and there are other types:

  • j: Interpreted Java frame
  • V: virtual machine frame
  • v: the stub stack frame generated by the virtual machine
  • J: Other frame types, including compiled Java frames

3. --------------- THREAD ---------------

 THREAD contains very useful information, including the location of the method call error.

It can be seen that there is a problem with this method call.

 

Guess you like

Origin blog.csdn.net/liyang_nash/article/details/108220119