2008-12-03 70 views
10

来自JVM崩溃的日志文件包含用于调试的各种有用信息,例如加载的共享库和完整的环境。我可以强制JVM以编程方式生成其中的一个;通过执行崩溃或其他方式的代码?或者以另一种方式访问​​相同的信息?我可以强制生成JVM崩溃日志文件吗?

回答

0

我非常确定这可以用IBM JDK来完成,因为前一段时间我正在玩堆栈分析器。一个强制转储的选项只会导致outOfMemoryException。

这些工具可以提供一些线索http://www.ibm.com/developerworks/java/library/j-ibmtools1/

+0

该链接似乎只是针对IBM客户提供的工具,其中我不是其中的一员。 – DJClayworth 2008-12-03 16:54:32

2

看一看的JDK Development Tools,特别是Troubleshooting Tools倾倒堆,打印配置信息,等等。

+0

这些工具中,[`jstack`](http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstack.html)似乎是最有前途的,形式为`jstack -l - F -m `(如果进程未挂起,则不需要`-F`)。这样就可以以混合模式(Java和本机)和锁定的同步器获得所有线程的堆栈,即使进程已挂起。 – PJTraill 2015-05-28 14:10:53

+0

或者查看适用于Oracle Java 8的https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/toc.html(以前的链接是6,但可能并不是非常不同的内容)。 – PJTraill 2015-05-28 14:16:31