java导致native非法指令,020-浅析JVM崩溃的原因及解决方法

浅析JVM 崩溃的原因及解决方法

王树大2010-2-8

一问题的提出

二JVM 崩溃原因

常见的能够引起JVM崩溃的原因主要有:

?线程阻塞

?CPU 使用率过高

?JVM Crash

?堆内存不足

?类装载

?Java虚拟机自身的Bug

?JDK与服务器(CPU、内存、操作系统)的兼容性

?内存溢出

三日志分析

1.日志文件的生成

当Java虚拟机非正常退出时,都会产生hs_err_pid.log的错误日志,缺省情况下,这个文件会产生在bin(对Tomcat来说一般在CATALINA_HOME/bin)目录下,可以在Java启动参数通过下面的设置,来改变这个文件的位置和命名规则。例如:

java -XX:ErrorFile=%CATALINA_HOME%/logs/java_error_%p.log

2.日志内容分析

1)

c85aab729ee456f3fa6cd014d26bd1d6.png

# SIGSEGV (0xb) at pc=0x004e57dc, pid=7189, tid=1831316368

| | | | +--- thread id

| | | +------------- process id

| | +--------------------------- program counter

| | (instruction pointer)

| +--------------------------------------- signal number

+---------------------------------------------- signal name 其中Signal Name:

SIGSEGV:意味着JVM正在执行本地或JNI的代码;

EXCEPTION_ACCESS_VIOLATION:意味着Java应用Crash的时候,正在运行JVM自己的代码,而不是外部的Java代码或其他类库代码;

EXCEPTION_STACK_OVERFLOW:表示这是个栈溢出的错误;

SIGILL:

2)Problematic frame

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值