2017-02-20 158 views
0

我正在使用SWT/JFace的在IHM的RCP Java項目,我encountring導致應用程序崩潰的嚴重問題。 我試着檢查pid文件,但pid文件中堆棧中的最後一個方法是不同的。 我增加了xmx和xms,但崩潰仍然存在,我尋找一個幫助我解決問題的索引,但沒辦法。有沒有解決方案來解決java 8中的JAVA致命錯誤?

波紋管從pid文件

> # A fatal error has been detected by the Java Runtime Environment: 
> # 
> # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000005f8c04fa, pid=5268, tid=0x00000000000008c0 
> # 
> # JRE version: Java(TM) SE Runtime Environment (8.0_102-b14) (build 1.8.0_102-b14) 
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode windows-amd64 compressed oops) 
> # Problematic frame: 
> # C 0x000000005f8c04fa 
> # 
> # 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. 
> # 
> 
> --------------- T H R E A D --------------- 
> 
> Current thread (0x000000000226f800): JavaThread "main" 
> [_thread_in_native, id=2240, 
> stack(0x00000000026a0000,0x00000000027a0000)] 
> 
> siginfo: ExceptionCode=0xc0000005, reading address 0x0000000000000013 
> 
> Registers: RAX=0x0000000000040b3e, RBX=0x0000000000000002, 
> RCX=0x0000000040b3ed30, RDX=0x0000000000000002 RSP=0x000000000279a700, 
> RBP=0x0000000040b3e000, RSI=0x0000000040b3e000, RDI=0x0000000000000000 
> R8 =0x0000000000000001, R9 =0x0000000000000001, 
> R10=0x0000000004deb3c9, R11=0x0000000004deb398 R12=0x00000000609a8730, 
> R13=0x0000000000000000, R14=0x0000000000000001, R15=0x0000000000000000 
> RIP=0x000000005f8c04fa, EFLAGS=0x0000000000010202 
> 
> Top of Stack: (sp=0x000000000279a700) 0x000000000279a700: 
> 000000000279a848 0000000000000000 0x000000000279a710: 
> 000000000226f800 000000000279a7d8 0x000000000279a720: 
> 000000000226f800 000000000279a808 0x000000000279a730: 
> 0000000000000000 0000000000470000 0x000000000279a740: 
> 000000000279a7d8 000000005f8bf2e3 0x000000000279a750: 
> 0000000000000002 0000000040b3ed30 0x000000000279a760: 
> 000000000279a7f0 0000000000470000 0x000000000279a770: 
> 0000000000000000 0000000004deb447 0x000000000279a780: 
> 0000000024385638 00000006dce5dbb0 0x000000000279a790: 
> 0000000000421054 0000000002c06f44 0x000000000279a7a0: 
> 0000000000000002 0000000004e7aef4 0x000000000279a7b0: 
> 0000000000000000 0000000000000000 0x000000000279a7c0: 
> 0000000036bb84e0 0000000000000000 0x000000000279a7d0: 
> 000000000279a868 00000006dd0f16a0 0x000000000279a7e0: 
> 00000006dd0f16a0 0000000002a77f10 0x000000000279a7f0: 
> 000000000279a868 0000000002a77f10 
> 
> Instructions: (pc=0x000000005f8c04fa) 0x000000005f8c04da: 81 e3 ff 
> 07 00 00 48 03 db 49 39 b4 dc d0 08 00 0x000000005f8c04ea: 00 75 28 
> 49 8b 9c dc d8 08 00 00 48 85 db 74 20 0x000000005f8c04fa: 0f b6 43 
> 11 41 3b c0 75 17 41 83 f8 01 0f 85 80 0x000000005f8c050a: 01 00 00 
> ff 43 18 e9 78 01 00 00 48 8b 5c 24 50 
> 
> 
> Register to memory mapping: 
> 
> RAX=0x0000000000040b3e is an unknown value RBX=0x0000000000000002 is 
> an unknown value RCX=0x0000000040b3ed30 is an unknown value 
> RDX=0x0000000000000002 is an unknown value RSP=0x000000000279a700 is 
> pointing into the stack for thread: 0x000000000226f800 
> RBP=0x0000000040b3e000 is an unknown value RSI=0x0000000040b3e000 is 
> an unknown value RDI=0x0000000000000000 is an unknown value R8 
> =0x0000000000000001 is an unknown value R9 =0x0000000000000001 is an unknown value R10=0x0000000004deb3c9 is at entry_point+73 in 
> (nmethod*)0x0000000004deb210 R11=0x0000000004deb398 is at 
> entry_point+24 in (nmethod*)0x0000000004deb210 R12=0x00000000609a8730 
> is an unknown value R13=0x0000000000000000 is an unknown value 
> R14=0x0000000000000001 is an unknown value R15=0x0000000000000000 is 
> an unknown value 
> 
> 
> Stack: [0x00000000026a0000,0x00000000027a0000], 
> sp=0x000000000279a700, free space=1001k Native frames: (J=compiled 
> Java code, j=interpreted, Vv=VM code, C=native code) C 
> 0x000000005f8c04fa C 0x000000005f8bf2e3 C 0x0000000004deb447 
> 
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) J 10363 
> org.eclipse.swt.internal.win32.OS.HeapAlloc(JII)J (0 bytes) @ 
> 0x0000000004deb3c9 [0x0000000004deb380+0x49] j 
> org.eclipse.swt.widgets.CoolBar.createItem(Lorg/eclipse/swt/widgets/CoolItem;I)V+114 
> j 
> org.eclipse.swt.widgets.CoolItem.<init>(Lorg/eclipse/swt/widgets/CoolBar;I)V+17 
> j 
> fr.ifp.temisflow.api.basintools.ui.ui.widget.CoolItemFactory.createCoolItem(ILorg/eclipse/swt/widgets/Control;II)Lorg/eclipse/swt/widgets/CoolItem;+58 

瞬間,我的VM參數等環境變量是:

> VM Arguments: jvm_args: 
> -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:58325 -Xms400m -Xmx4000m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+AggressiveOpts -Dfile.encoding=Cp1252 java_command: org.eclipse.equinox.launcher.Main -launcher 

> -os win32 -ws win32 -arch x86_64 -nl en_GB -consoleLog java_class_path (initial): 
> C:\Users\.metadata\.plugins\org.eclipse.pde.core\.bundle_pool\plugins\org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar 
> Launcher Type: SUN_STANDARD 
> 
> Environment Variables: PATH=C:/Program 
> Files/Java/jre1.8.0_102/bin/server;C:/Program 
> Files/Java/jre1.8.0_102/bin;C:/Program 
> Files/Java/jre1.8.0_102/lib/amd64;C:\Program Files (x86)\Common 
> Files\Intel\Shared Libraries\redist\intel64\mpirt;C:\Program Files 
> (x86)\Common Files\Intel\Shared 
> Libraries\redist\intel64\compiler;C:\ProgramData\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program 
> Files (x86)\WinMerge;C:\Program Files (x86)\Common 
> Files\SYSTEM\MSMAPI\1036;C:\Users\eclipse; 
> USERNAME=** OS=Windows_NT PROCESSOR_IDENTIFIER=Intel64 Family 6 
> Model 26 Stepping 5, GenuineIntel 
> 
> 
> 
> --------------- S Y S T E M --------------- 
> 
> OS: Windows 7 , 64 bit Build 7601 (6.1.7601.23572) 
> 
> CPU:total 4 (4 cores per cpu, 2 threads per core) family 6 model 26 
> stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, 
> sse4.2, popcnt, ht, tsc, tscinvbit, tscinv 
> 
> Memory: 4k page, physical 12580408k(5019496k free), swap 
> 25158956k(16067112k free) 
> 
> vm_info: Java HotSpot(TM) 64-Bit Server VM (25.102-b14) for 
> windows-amd64 JRE (1.8.0_102-b14), built on Jun 22 2016 13:15:21 by 
> "java_re" with MS VC++ 10.0 (VS2010) 

我還通過在日誌中的.metadata看着工作區,但在崩潰期間沒有日誌。

是否有任何可能的解決方案或步驟或規則使用Skout解決Java的致命錯誤在Java 8?

+3

你還沒有給我們足夠的類似信息什麼能夠幫助。什麼是崩潰?給我們更多的細節。 Eclipse的垃圾收集站與SWT和JFace通常做工精細與Java 8 –

+0

這是一個沉重的E3應用程序,我可以通過嘗試打開一個編輯器重現崩潰,但也沒有明顯的痕跡,以幫助我們檢測如何以及在何處發生崩潰,我運行yourkit來檢測異常記憶行爲,但所有圖表似乎都沒問題。 – Anas

+0

在工作區.metdata目錄中查找.log文件。 –

回答

0

檢查您的RAM。

我一直忍受幾乎每週幾次的相同錯誤EXCEPTION_ACCESS_VIOLATION (0xc0000005)幾周,直到我運行內存診斷工具並發現我的一個內存模塊發生故障。

參考:JVM Crashing EXCEPTION_ACCESS_VIOLATION (0xc0000005)

PS:我張貼,所以您可以更快地解決你的問題的答案。當你承認我的答案時,我可能會將這個問題標記爲欺騙。

+0

我只是運行Windows工具來診斷內存,但沒有錯誤被發現了,並且我已經運行yourkit看到內存(堆和非堆)圖,但沒有記憶已經超出了他的分配,我不知道是否有人已經encountred這個問題,即沒有發現內存問題。 – Anas