来自JVM崩溃的日志文件包含用于调试的各种有用信息,例如加载的共享库和完整的环境。我可以强制JVM以编程方式生成其中一个;要么通过执行崩溃它的代码或其他方式?或者以另一种方式访问相同的信息?
答案 0 :(得分:8)
您可以尝试抛出OutOfMemoryError并添加-XX:+ HeapDumpOnOutOfMemoryError jvm参数。这是1.6的新功能,以及McDowell建议的其他工具。 http://blogs.oracle.com/watt/resource/jvm-options-list.html
答案 1 :(得分:2)
查看JDK Development Tools,特别是转储堆的Troubleshooting Tools,打印配置信息等等。
答案 2 :(得分:0)
我很确定这可以通过IBM JDK来完成,就像我前一段时间使用他们的堆栈分析器一样。强制转储的一个选项只会导致outOfMemoryException。
这些工具可能会提供一些线索http://www.ibm.com/developerworks/java/library/j-ibmtools1/
答案 3 :(得分:0)
在 Ubuntu 20.04.1 LTS 上,我通过
强制在 jdk 11 进程上进行核心转储kill -4 <PID>