JVM崩溃而没有留下任何日志

时间:2018-06-30 20:18:54

标签: java jvm

我还是Java应用程序调试的新手,不过,请尝试学习Java应用程序调试的各个方面。我有一个Windows应用程序,其中包含许多jar文件,并由用C ++编写的单个.exe文件执行。该应用程序可以正常运行,但是在使用一段时间后会崩溃

  

(Java(TM)Platform SE二进制文件没有响应)

不留日志。我尝试了-XX:ErrorFile参数,但它不会生成任何错误文件。我还尝试了堆转储分析,但是它也没有显示内存泄漏。谁能告诉我JVM崩溃的可能原因是什么!或者如何获取崩溃的日志文件?

在理想的时间,该应用程序仅消耗1-10%的CPU和250-280MB的内存,但崩溃后,它仍然占用25%的CPU使用率和250-280MB的内存。我为此应用程序专用了2048M的内存。

线程转储在应用程序挂起之前显示以下线程

"Thread-1" #12 daemon prio=5 os_prio=0 tid=0x0000000018392800 nid=0x2de0 waiting on condition [0x0000000018ece000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x00000000a1da8db8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
at java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)
at com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:108)

Locked ownable synchronizers:
- None

应用程序挂起后,同一线程更改为-

"Thread-1" #12 daemon prio=5 os_prio=0 tid=0x0000000018392800 nid=0x2de0 in Object.wait() [0x0000000018ece000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:126)
- locked <0x00000000a1d65960> (a java.lang.StringBuilder)

Locked ownable synchronizers:
- None

我该如何解决这个问题?

线程转储文件链接-Thread Dump File Link JMC Threads

0 个答案:

没有答案