JVM崩溃

程序本来好好的, 做了一次大修改,测试的时候发现在某些场合下,程序突然消失了,检查后发现JVM崩溃了.

 

在运行目录下,生成了一个错误log文件: hs_err_pid26290.log

 

打开看, 能看到一些信息; 同时查了一下网上的一些资料.

 

JVM的崩溃, 在网上找了一下一般以以下几种情况居多:

 

1. 内存不够, 尤其是Heap不够造成的, 具体的例子如:  http://www.zhuoda.org/hofman/66549.html

 

2.JVM编译的时候发生的JVM崩溃, 如: 

 http://seanhe.iteye.com/blog/905997 , 

 http://hi.baidu.com/wzgws/item/60ad0dea9ae6aff6e0a5d476

 

3. GC的时候发生的JVM崩溃, 这个网上最多了.

 

按照资料的情况,对log文件做了分析,

 

log文件的内容包括这几部分:(直接抄网上的, 没用自己的log来分析)

主要日志信息如下:
JVM crash main information:
1.JVM:(1.5.0_17-b04 mixed mode) 
A fatal error has been detected by the Java Runtime Environment:  
2.SIGSEGV (0xb)  
3.libjvm.so+0x48acf3  
4.Java Threads: ( => current thread )
  ComiplerThread [_thread_in_native] 
5.Current CompileTask:
    com.apusic.net.Muxer.acceptConnection(SocketAdaptor paramSocketAdaptor) 
6.Heap的使用情况正常。

 

通过Thread, 可以判断问题出在哪个类型的线程中, 通过Heap可以分析内存使用的情况;

 

分析了自己的log,问题也是出在 CompilerThread0 , 根据Java TroubleShooting Guide的解释(相关部分在http://seanhe.iteye.com/blog/905997中已经给出翻译), 将 相关的方法配制在-XX:CompileCommand中, 问题得以解决;

 

 

还有: 崩溃位置的定义在这个log文件中有说明:

 

Native frames: (

J=compiled Java code,

j=interpreted,

Vv=VM code,

C=native code

)

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值