目に見えるアクティビティのない、ある種の無限ループに陥っているjenkinsインスタンスがあります。
実行中のプロセスのpid
を取得できるので、バグレポートに使用できるトレースを生成するにはどうすればよいですか?
Linuxで実行しています。
jstack で試してください。スレッドが何をしているかの完全なリストが表示されます。必要なのはプロセスpidだけです。
スレッドダンプを取得します。 Visual VM=を使用して接続し、ダンプを要求します。または、UNIXの場合kill -3 pidまたはWindows Ctrl + Breakの場合ダンプはコンソールに直接送られ、jstackを使用してダンプをスローすることもできます。
* nixでは、top
を押してH
を押すと、スレッドが表示されます。
jps
を使用すると、pid
を見ることができます。プロセスが特権で開始された場合、たとえばSudo
で実行する必要があることに注意してください。
スレッドIDを取得して16進数に変換すると、そのデータをjstack pid
出力。
両方のツールは$Java_HOME/bin
。
Ctrl+\
Linuxの場合(SIGQUIT
を送信)
Ctrl+Break
ウィンドウ上(MSVCRTでSIGBREAK
を送信)
VisualVM をご覧ください。多くのニースプロファイリングツールがあり、スレッドダンプを実行できます。