我正在调试在 Sun 的 JDK 1.4.2_18 上运行的应用程序中的内存泄漏。这个版本似乎支持命令行参数 -XX:+HeapDumpOnCtrlBreak,这可能会导致 JVM 在遇到控制中断时转储堆。如何将其发送到 Linux 机器上的后台进程?看来 kill 信号是应该起作用的方式,但是我 kill -l 没有报告任何明显是 Ctrl-Break 的东西,至少在我的 Ubuntu 机器上是这样。
更新:我用 Sun JDK 1.4.2_18 测试了 Kill -3(_14 是第一个以这种方式转储堆的),并且它有效。创建了一个堆转储文件,并且该进程仍在运行。