头文件包含了简单的信息阐述,里面就core掉的原因

# An unexpected error has been detected by Java Runtime Environment:

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x69ba3a96, pid=376, tid=1848

# Java VM: Java HotSpot(TM) Client VM (11.0-b16 mixed mode, sharing windows-x86)

# Problematic frame:

# C  [nvoglnt.dll+0x6a3a96]

这里的问题是动态库的调用,这个库如果不是java自带的库,而是第三方的库,那么可以查看这个库是否和机型系统想匹配,如果不匹配换匹配的库就好,如果匹配,需要重新安装该库尝试。

#  Out of Memory Error (os_linux_x86.cpp:718), pid=29229, tid=140505843455744

# JRE version: Java(TM) SE Runtime Environment (7.0_67-b01) (build 1.7.0_67-b01)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode linux-amd64 compressed oops)

# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

这里直接指出了问题的原因是oom,后面还会有物理内存状态,可以用来印证这个错误。

头文件+栈信息

# An unexpected error has been detected by HotSpot Virtual Machine:

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x009fcf52, pid=4344, tid=5876

# Java VM: Java HotSpot(TM) Client VM (1.5.0_14-b03 mixed mode)

# Problematic frame:

# V  [jvm.dll+0x9cf52]

头文件信息告诉我们是jvm.dll这个是jvm自己的库。此时就不能单纯的依靠这个信息来换库解决。

必须看栈信息,一般会有两个模块,一个是Native frames一个是Java frames。

Stack: [0x00030000,0x00070000),  sp=0x0006f934,  free space=254k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)

V  [jvm.dll+0x9cf52]

C  [NativeCode.dll+0x148b]

C  [NativeCode.dll+0x1253]

j  com.sy.test.TestNative.sayHello()V+0

j  com.sy.test.TestNative.main([Ljava/lang/String;)V+22

v  ~StubRoutines::call_stub

V  [jvm.dll+0x875dd]

V  [jvm.dll+0xdfd96]

V  [jvm.dll+0x874ae]

V  [jvm.dll+0x8e6f1]

C  [javaw.exe+0x14c5]

C  [javaw.exe+0x3151]

C  [kernel32.dll+0x16fd7]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)

j  com.sy.test.TestNative.sayHello()V+0

j  com.sy.test.TestNative.main([Ljava/lang/String;)V+22

v  ~StubRoutines::call_stub

上面的信息,是从java调用到c了,极大的可能是jni的形式,此时需要查看,后面的PATH,LD_LIBRARY_PATH,以及-Djava.library.path查看是否编写了JNI。

80%的问题上面的方法都可以推断和解决,下面说说20%的情况

jit问题表征

# JRE version: Java(TM) SE Runtime Environment (8.0_25-b17) (build 1.8.0_25-b17)

# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.25-b02 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C  0x0000000764928700

Stack: [0x00002b9213782000,0x00002b9213803000],  sp=0x00002b92137fe6d0,  free space=497k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)

C  0x0000000764928700

这种直接就是问题都是寄存器地址的,也没有栈信息的,基本问题在JIT

# Problematic frame:

# J org.apache.http.impl.cookie.BestMatchSpec.formatCookies(Ljava/util/List;)Ljava/util/List;

上面这种造成core的是java代码引起的,是解释器的问题,基本问题在JIT

纯jvm代码

# JRE version: 6.0_45-b06

# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.45-b01 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# v  ~StubRoutines::jshort_disjoint_arraycopy

Stack: [0x00007fecfc9dc000,0x00007fecfca1d000],  sp=0x00007fecfca1b4b0,  free space=253k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)

v  ~StubRoutines::jshort_disjoint_arraycopy

上图整体的信息都是jvm的代码,这种情况一般是jvm的bug,可以查jvm的bug列表并且更换jdk

引用案例出处

http://bbs.csdn.net/topics/390975171

http://blog.csdn.net/zct08/article/details/6333467

http://m635674608.iteye.com/blog/2257650

欢迎工作一到五年的Java工程师朋友们加入Java架构开发:468947140

点击链接加入群聊【Java-BATJ企业级资深架构】:https://jq.qq.com/?_wv=1027&k=5zMN6JB

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

Java 的应用有时候会因为各种原因Crash,这时候会产生一个类似 java _errorpid.log的错误日志。可以拿到了这个日志,怎样 分析 Crash的原因呢?下面我们来详细讨论如何 分析 java _errorpid.log的错误日志。 一. 如何得到这个日志文件 如果有一个严重的错误引起 Java 进程非正常退出,我们叫Crash,这时候会产生一个日志文件。缺省情况下,这个文件会产生在工作目录下。但是... hs_err_pid简介hs_err_pid.log是 java 程序发生 core 的时候产生的文件,里面有当时出错时jvm的执行情况。排查方法头文件解读可以查看问题头文件包含了简单的信息阐述,里面就 core 掉的原因## An unexpected error has been detected by Java Runtime Environment:## EXCEPTION_ACCESS_VIOLA... ipv6触发JDK8的JVM奔溃实例讲解,生产实际过程中过程中可能遇到。** 作者 是真实解决生产事故做一次真实案例,提供给JVM宕机网友们一个解决问题的思路与方法。我们工作中99%遇到的是从程序日志翻看 分析 的,这次似乎更深到JVM的日志 分析 。还得去参考一下国外程序员同行的加成最终才能解决,希望写的东西能帮到你,如果真的帮到你了,记得给我点赞。 作者 本人简介:现任国内某大型软件公司大数据研发工程师、MySQL数据库DBA,软件架构师。直接参与设计国家级亿级别大数据项目。并维护真实企业级生产数据库300余个。紧急 # JRE version: Java (TM) SE Runtime Environment (8.0_121-b13) (build 1.8.0_121-b13) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.121-b13 mixed mode linux-amd64 compressed oops) # Problematic fra... 前些天,搞JNI的时候,报了个JVM崩溃的错。错误信息如下: # An unexpected error has been detected by HotSpot Virtual Machine: #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x009fcf52, pid=4752, tid=4440 # Java VM... 当两个或多个线程彼此形成循环依赖关系时,就出现了死锁。例如,如果线程 A 处于等待线程 B 的等待状态,而同时线程 B 处于等待线程 A 的等待状态,则出现了死锁。一旦形成此情况,线程 A 和线程 B 都不能有任何进展,因为这两个线程现在都无限期地挂起了。为什么会有人创建这种系统?当然,您并不会有意这么做,但由于存在大量线程和复杂事务,因此很容易出现这种情况。本文将介绍如何使用 IBM WebSp... Dump 就是对程序运行时内存上的信息进行转储, 让我们可以查看程序当时的运行情况. Dump 对于调优和排错是非常有用的工具. Heap Dump Java 运行时对象分配在堆内存上, Heap dump 就是对堆内存进行转储. 通过命令jmap - dump :live,format=b,file=***.hprof pid eg:jmap - dump :live,format=b,... 首先查看 syslog(可以看到是否被系统kill等其他信息) 发现没权限...只有crash日志,那从上往下如下错误的概要介绍 分析 ------SIGSEGV (0xb) at pc=0x00007fce0a3e3bcf, pid=9562, tid=140508990830336其中 重要的几个参数1)错误的信号类型这里是 SIGSEGV表示jvm crash时正在执行jni代码,而不是在...