10

Sun の JDK 1.4.2_18 で実行されているアプリケーションでメモリ リークをデバッグしています。このバージョンは、コマンド ライン パラメータ -XX:+HeapDumpOnCtrlBreak をサポートしているようです。これにより、コントロール ブレークが発生したときに JVM がヒープをダンプすると考えられます。これを Linux ボックスのバックグラウンド プロセスに送信するにはどうすればよいですか? キルシグナルはこれが機能するはずの方法のようですが、少なくとも私のUbuntuボックスでは、kill -lは明らかにCtrl-Breakであるとは何も報告しません。

更新: Sun JDK 1.4.2_18 で Kill -3 をテストしました (_14 はこの方法でヒープを最初にダンプしました)。ヒープ ダンプ ファイルが作成され、プロセスがまだ実行されていました。

4

2 に答える 2

16

Ctrl-\ は、Windows の Ctrl-Break に相当する UNIX/Linux です。ウィキペディアによると、Linux 仮想コンソールで Ctrl-4 または SysRq を使用することもできます (通常の端末エミュレーターがこれらのキー押下の表現を (ssh/telnet 経由で) 渡すには、何か奇妙なものが必要になると思います)。

于 2009-05-11T21:38:15.020 に答える
10

kill -QUIT はそれを行うかもしれません(Windowsのctrl-breakによって生成されるスレッドダンプを生成します。ただし、ヒープダンプオプションで試したことはありません)。

于 2009-05-11T21:53:14.060 に答える