2012-03-24 7 views
-3

私のコンピュータにJVMクラッシュがあります。重いレンダリング機能を備えた複雑な3Dアプリケーションがあります。そしてそれは何度もクラッシュした。クラッシュログは以下に添付されています。Javaクラッシュの原因は何ですか?そしてそのような事故を防ぐ方法は?

# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# SIGSEGV (0xb) at pc=0x00007f0c6ea08856, pid=16993, tid=139691170658048 
# 
# JRE version: 6.0_22-b22 
# Java VM: OpenJDK 64-Bit Server VM (20.0-b11 mixed mode linux-amd64 compressed oops) 
# Derivative: IcedTea6 1.10.4 
# Distribution: Ubuntu 11.04, package 6b22-1.10.4-0ubuntu1~11.04.1 
# Problematic frame: 

CPU:total 2 (2 cores per cpu, 2 threads per core) family 6 model 37 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht 

Memory: 4k page, physical 7990512k(6392940k free), swap 8180732k(8180732k free) 

vm_info: OpenJDK 64-Bit Server VM (20.0-b11) for linux-amd64 JRE (1.6.0_22-b22), built on Oct 25 2011 06:09:07 by "buildd" with gcc 4.5.2 

time: Sat Mar 24 09:41:44 2012 
elapsed time: 412 seconds 

Signal Handlers: 
SIGSEGV: [libjvm.so+0x7d0fd0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGBUS: [libjvm.so+0x7d0fd0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGFPE: [libjvm.so+0x6837d0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGPIPE: [libjvm.so+0x6837d0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGXFSZ: [libjvm.so+0x6837d0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGILL: [libjvm.so+0x6837d0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 
SIGUSR2: [libjvm.so+0x6839a0], sa_mask[0]=0x00000000, sa_flags=0x10000004 
SIGHUP: [libjvm.so+0x686340], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGINT: [libjvm.so+0x686340], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGTERM: [libjvm.so+0x686340], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
SIGQUIT: [libjvm.so+0x686340], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 
+8

私は胎児のクラッシュがどのように見えるか想像することができます... –

+0

私の野生の推測は、あなたのコントロールからいくつかのネイティブコードが誤っているでしょう。 – millimoose

答えて

2

Eclipseを起動し、Eclipseプロファイラを使用してアプリケーションのメモリリークを検査します。おそらくクラッシュはメモリの問題(メモリ不足エラー)に関連している可能性があります。

また、私が言及していたことを忘れていました。起動時にもっと多くのRAMメモリをJavaアプリケーションに割り当てることができます。しかし、とにかく、メモリリークのためにあなたのアプリを調べてください。

java appにメモリを割り当てるには、java appを起動するときにコマンドラインで-xmxキーを使用します。

+0

それは単に 'OutOfMemoryError'を投げないでしょうか? – millimoose

+3

いいえ、100%ルールではありません。ときには、ページ違反が報告されたようにクラッシュすることがあります。 –

+0

@RafaelOsipov:私のシステムはi7プロセッサー、8GB RAMです。それでも私はそれがJVMのメモリ問題であると信じています。それを増やして、同じことが起こるかどうかを調べる方法はありますか? – YumYumYum

関連する問題