2011-08-01 9 views
2

かなり大きなコードベースを変更していますが、デバッグ中です。私のコードは終了しないので、私はスタックトレースを取得しません。私はブレークポイントでトラブルコードを分離しようとしましたが、残念ながら、常に実行されているセクション(トランザクションマネージャ)を実行していますので、私はクリックして死にます。さらに、コードが特定の条件下でのみ壊れるという印象を受けますが、ほとんどの場合は大丈夫です。終了しないコードで最後に実行されたメソッドを取得する方法は?

実行されている現在の方法であった最後の方法をIntellijに見せる方法はありますか?

ありがとう

答えて

3

トレースツールBTraceを使用すると、プログラムに入力されたすべてのメソッドの名前を表示できます。 AllMethodsと呼ばれるBTraceに付属するサンプルスクリプトがあります。

Javaプロセスを起動して、JVMのPIDに対してBTraceスクリプトを実行するだけです。入力されたすべてのメソッドが表示されます。必要に応じて、特定のパッケージに制限することができます。 BTraceを使用する方法の詳細については、tutorialを参照してください。

+0

JVMのPIDを使用すると、プロセス番号、つまりps/topを使用して取得することができますか? – ib84

+0

@ ib84はい、 'ps'で表示されるプロセスID – dogbane

1

プロファイラーを使用してください。それは、どのメソッドが実行されているか、プログラムが各メソッドでどれくらいの時間を費やしているかなどの内訳を提供します。そこから、あなたのプログラムが時間を費やしている場所を見つけるのは簡単です。

JProfilerです。私はそれが完全に機能している試用版/デモ版を持っていると思う。

+0

回答はありがたいですが、トレースは特殊なソリューションと思われます。 – ib84

関連する問題