解释Java崩溃文件

我有一个大量定制的Swing应用程序,主要在面板和按钮上添加渐变和圆形边框。

应用程序很少崩溃与完全相同的错误,我得到hs_err_pid [0000] .log

片段:

Java Threads: ( => current thread ) 0x032ff400 JavaThread "Thread-1" daemon [_thread_in_native, id=3452, stack(0x04660000,0x046b0000)] 0x02b1c400 JavaThread "Keep-Alive-Timer" daemon [_thread_blocked, id=3524, stack(0x04850000,0x048a0000)] 0x03198800 JavaThread "Poller Thread" [_thread_blocked, id=2444, stack(0x04610000,0x04660000)] 0x032d3c00 JavaThread "ClientAPI::HttpConnection::InputStreamByteReader" [_thread_blocked, id=3672, stack(0x04ad0000,0x04b20000)] 0x03288400 JavaThread "ClientAPI::HttpConnection" [_thread_blocked, id=4564, stack(0x04a30000,0x04a80000)] 0x0329f400 JavaThread "ClientAPI::HttpPostConnection" [_thread_blocked, id=412, stack(0x049e0000,0x04a30000)] 0x02a90400 JavaThread "MultiThreadedHttpConnectionManager cleanup" daemon [_thread_blocked, id=3500, stack(0x048a0000,0x048f0000)] 0x003a9400 JavaThread "DestroyJavaVM" [_thread_blocked, id=132, stack(0x008c0000,0x00910000)] 0x03e56800 JavaThread "Thread-7" [_thread_blocked, id=2912, stack(0x04700000,0x04750000)] 0x03e1d800 JavaThread "TimerQueue" daemon [_thread_blocked, id=5728, stack(0x03da0000,0x03df0000)] 0x031abc00 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=2788, stack(0x036c0000,0x03710000)] 0x0314ec00 JavaThread "AWT-Shutdown" [_thread_blocked, id=2468, stack(0x034a0000,0x034f0000)] =>0x02fbe400 JavaThread "Java2D Disposer" daemon [_thread_in_vm, id=5836, stack(0x03450000,0x034a0000)] 0x02a74400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3044, stack(0x02d20000,0x02d70000)] 0x02a6e400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3248, stack(0x02cd0000,0x02d20000)] 0x02a6cc00 JavaThread "Attach Listener" daemon [_thread_blocked, id=548, stack(0x02c80000,0x02cd0000)] 0x02a6b800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2792, stack(0x02c30000,0x02c80000)] 0x02a63000 JavaThread "Finalizer" daemon [_thread_blocked, id=1504, stack(0x02be0000,0x02c30000)] 0x02a61c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=3124, stack(0x02b90000,0x02be0000)] 

有没有办法解释这个文件,以确定我的应用程序可能出错?

编辑,添加更多细节

从目前为止的答案, 本文和下面的剪辑,我认为游标的设置正在引起这些问题。

 Stack: [0x03450000,0x034a0000], sp=0x0349f860, free space=318k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [jvm.dll+0xd2db8] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j java.awt.Cursor.finalizeImpl(J)V+0 j java.awt.Cursor.access$000(J)V+1 j java.awt.Cursor$CursorDisposer.dispose()V+13 j sun.java2d.Disposer.run()V+26 j java.lang.Thread.run()V+11 v ~StubRoutines::call_stub 

这是解释hs_err日志文件的一个很好的指南,特别是在Windows上。 不幸的是,这是一个非常复杂的过程,但应该最终指导您解决问题。

请注意,除非您使用JNI,否则您的应用程序无论如何都不会导致JVM崩溃。 我尝试在不同的JVM和机器上运行它来排除JVM错误和硬件问题。

如果您使用的是Sun JRE,则诊断程序应提供指向相应错误报告页面的链接。 http://java.sun.com/webapps/bugreport/crash.jsp

确保您拥有最新的JRE(6u15 / 6u16)和最新的显卡驱动程序是值得的。