问题描述
当Java VM使用EXCEPTION_ACCESS_VIOLATION崩溃并产生一个hs_err_pidXXX.log文件时,这是什么意思?错误本身基本上是一个空指针异常。它总是由JVM中的错误引起的,还是有其他原因导致硬件或软件冲突的故障?
编辑:有一个本地组件,这是一个SWT应用程序在win32上。
大多数时候,这是VM中的错误。
但是它可以由任何本地代码(例如JNI调用)引起。
hs_err_pidXXX.log文件应包含有关问题发生地点的一些信息。 / p>
您还可以检查文件中的Heap部分。许多VM错误是由垃圾回收引起的(特别是在旧VM中)。这部分应该告诉你,如果垃圾在崩溃时运行。此部分显示,如果堆的某些部分被填充(百分比数字)。
与其他情况相比,虚拟机在内存不足的情况下更容易崩溃。
When a Java VM crashes with an EXCEPTION_ACCESS_VIOLATION and produces an hs_err_pidXXX.log file, what does that indicate? The error itself is basically a null pointer exception. Is it always caused by a bug in the JVM, or are there other causes like malfunctioning hardware or software conflicts?
Edit: there is a native component, this is an SWT application on win32.
Most of the times this is a bug in the VM.But it can be caused by any native code (e.g. JNI calls).
The hs_err_pidXXX.log file should contain some information about where the problem happened.
You can also check the "Heap" section inside the file. Many of the VM bugs are caused by the garbage collection (expecially in older VMs). This section should show you if the garbage was running at the time of the crash. Also this section shows, if some sections of the heap are filled (the percentage numbers).
The VM is also much more likely to crash in a low memory situation than otherwise.
这篇关于Java VM EXCEPTION_ACCESS_VIOLATION的可能原因?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!