当 gdb 在 Java 中用于调试目的时:
gdb 对于快速进行堆转储很有用。
通常人们会使用jmap 或类似工具转储堆。但使用此工具时,JVM 在转储之前执行垃圾收集,这可能会在挂起的进程上花费数小时。通过以下步骤,您可以快速转储,重新启动进程并随后转换转储。
gdb --pid <PID>
gcore /tmp/gdbdump.core
detach
quit
之后需要将 core 文件转换为 hprof 文件,以便使用 Java 工具进行分析:
jmap -dump:format=b,file=/tmp/javadump.hprof /path/tojdk/java /tmp/gdbdump.core
请注意: