解释Java崩溃文件 [英] Interpreting Java crash files

查看:462
本文介绍了解释Java崩溃文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Swing应用程序,它是定制的很多自定义绘画主要在面板和按钮添加渐变和圆形边框。



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



代码段:

  Java Threads:(=>当前线程)
0x032ff400 JavaThreadThread-1守护程序[_thread_in_native,id = 3452,stack(0x04660000,0x046b0000)]
0x02b1c400 JavaThreadKeep-Alive-Timer守护进程[_thread_blocked,id = 3524,stack(0x04850000,0x048a0000)]
0x03198800 JavaThreadPoller Thread[_thread_blocked,id = 2444,stack(0x04610000,0x04660000)
0x032d3c00 JavaThreadClientAPI :: HttpConnection :: InputStreamByteReader[_thread_blocked,id = 3672,stack(0x04ad0000,0x04b20000)]
0x03288400 JavaThreadClientAPI :: HttpConnection[_thread_blocked,id = 4564,stack 0x04a30000,0x04a80000)]
0x0329f400 JavaThreadClientAPI :: HttpPostConnection[_thread_blocked,id = 412,stack(0x049e0000,0x04a30000)]
0x02a90400 JavaThreadMultiThreadedHttpConnectionManager cleanup守护程序[_thread_blocked,id = 3500,stack (0x048a0000,0x048f0000)]
0x003a9400 JavaThreadDestroyJavaVM[_thread_blocked,id = 132,stack(0x008c0000,0x00910000)]
0x03e56800 JavaThreadThread-7[_thread_blocked,id = 2912,stack(0x04700000 ,0x04750000)]
0x03e1d800 JavaThreadTimerQueue守护进程[_thread_blocked,id = 5728,stack(0x03da0000,0x03df0000)]
0x031abc00 JavaThreadAWT-EventQueue-0[_thread_blocked,id = 2788,stack 0x036c0000,0x03710000]]
0x0314ec00 JavaThreadAWT关闭[_thread_blocked,id = 2468,堆栈(0x034a0000,0x034f0000)]
=> 0x02fbe400 JavaThreadJava2D Disposer守护程序[_thread_in_vm,id = 5836 ,stack(0x03450000,0x034a0000)]
0x02a74400 JavaThread低内存检测程序守护程序[_thread_blocked,id = 3044,stack(0x02d20000,0x02d70000)]
0x02a6e400 JavaThreadCompilerThread0守护程序[_thread_blocked,id = 3248 ,stack(0x02cd0000,0x02d20000)]
0x02a6cc00 JavaThreadAttach Listener守护程序[_thread_blocked,id = 548,stack(0x02c80000,0x02cd0000)]
0x02a6b800 JavaThreadSignal Dispatcher守护程序[_thread_blocked,id = 2792 ,stack(0x02c30000,0x02c80000)]
0x02a63000 JavaThreadFinalizer守护进程[_thread_blocked,id = 1504,stack(0x02be0000,0x02c30000)]
0x02a61c00 JavaThreadReference Handler守护进程[_thread_blocked,id = 3124, stack(0x02b90000,0x02be0000)]

是否有解释此文件的方法,在我的申请中?



编辑添加更多详细信息



远,此文章和snipper下面,我认为游标的设置正在导致这些问题。

 堆栈:[0x03450000,0x034a0000],sp = 0x0349f860,自由空间= 318k 
本机框架(J =编译的Java代码,j =解释,Vv = VM代码,C =本地代码)
V [jvm.dll + 0xd2db8]

Java框架:(J =编译的Java代码,j =解释,Vv = VM代码)
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上。这是一个相当困难的过程,不幸的是,但最终应该指导你的问题。


I have a Swing application that is heavy customised with a lot of custom painting mainly on the panels and button to add gradients and round borders.

The application infrequently crashes with exactly the same error and i get hs_err_pid[0000].log

Snippet:

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)]

Is there a way of interpreting this file to determine what could be wrong in my application?

Edit, added more details

From the answered so far, this article and the snipper below, i think the setting of cursors is causing these issues.

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

解决方案

This is a very good guide to interpreting hs_err log files, particularly on Windows. It's quite an involved process, unfortunately, but should ultimately guide you to the problem.

这篇关于解释Java崩溃文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆