JavaFX EXCEPTION_ACCESS_VIOLATION

时间:2014-07-14 18:59:07

标签: java javafx jvm access-violation directx-11

我遇到了JavaFX桌面应用程序的问题,特别是3d渲染功能。 每次我尝试构建和启动JavaFX应用程序时,JVM都会出现错误,并且我会得到类似于以下错误的错误:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000000000, pid=8440, tid=9008
#
# JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  0x0000000000000000
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# D:\apps\desktop\hs_err_pid8440.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

整个日志:http://pastebin.com/FC6NfVjF

我尝试了不同的java版本(1.7_51,1.7_60,以及1.8_5),我尝试更新显卡驱动程序。 有些项目确实推出了,但是一旦我想展示一些更复杂的项目,效果(即悬停按钮),我得到同样的例外。

从堆栈跟踪来看,我认为它与directX有关。

j  com.sun.prism.d3d.D3DVertexBuffer.nDrawIndexedQuads(J[F[BI)I+0
j  com.sun.prism.d3d.D3DVertexBuffer.drawQuads(I)V+13
j  com.sun.prism.impl.VertexBuffer.flush()V+12

我在使用Windows 8.1和DirectX 11的机器上工作。可能它没有帮助,但在这里我也粘贴了DirectX诊断工具日志: http://pastebin.com/giN4AFv4

感谢您的任何意见。

1 个答案:

答案 0 :(得分:2)

崩溃发生在C:\Windows\system32\igdumdim64.dll0xe5fe9偏移 该库是Intel HD Graphics Driver的一部分。

以下是如何从崩溃日志中找到此内容的快速提示。

# Problematic frame:
# C  0x0000000000000000

零指令指针表示存在间接调用,目标地址恰好为NULL。此调用的返回地址可能位于堆栈顶部。

Top of Stack: (sp=0x000000000ef4d398)
0x000000000ef4d398:   00007ffb308b5fe9 000000000e979800

00007ffb308b5fe9是保存的返回地址。让我们找到它所属的范围。

Dynamic libraries:
...
0x00007ffb307d0000 - 0x00007ffb31019000      C:\Windows\system32\igdumdim64.dll

通过减去基址来查找库中的偏移量:
0x00007ffb308b5fe9 - 0x00007ffb307d0000 = 0xe5fe9

接下来,掌握了dll,我们可以对它进行反汇编并找出给定偏移处的确切函数。

P.S。
还有一个特定于Windows的Java标志-XX:+CreateMinidumpOnCrash,有助于为分析生成更有意义的崩溃转储。

相关问题