2011-07-21 6 views
1

コード内でどのメソッドが1つずつ呼び出されたかを知る必要があります。簡単なステップバイステップのデバッグは役に立ちません(あまり時間がかかりません)。これどうやってするの?コードを変更したりファイルに結果を保存することなくこれを行うのは本当に素晴らしいことです。Javaで呼び出されるメソッドのスタックを取得する

+0

これを確認してください:http://stackoverflow.com/questions/3256369/navigating-java-call-stack-in-eclipse/3256406#3256406 – dominicbri7

答えて

1

プログラムが終了する前に、Thread.currentThread().getStackTrace();を実行してから、これらの要素をそれぞれ印刷してください。スタックトレースはスレッドの実行順序を示します。

1

特に、既存のコードを変更しないことについて話すときには、クロスカッティングに関する懸念があります。

AspectJは、この作業をポイントカットを使用して行うことができます。それは多分あなたは、スタックツリーをチェックするだけのためにしたくないようですので

http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html

1

プログラムで発生するメソッド呼び出しごとにを記録しますか?もしそうなら、AspectJを見てください - 特定のメソッドを記録する例はhereですが、すべてのメソッドをカバーするように簡単に変更できます。

0

printStackTrace()関数を使用して呼び出されたものをダンプすることができます。

try{ 
    //Your code 
} 
catch(Exception e){ 
    e.printStackTrace(); 
} 
0

あなたは基本的にすべてのIDEは、デバッグモードを持っている...など、実行を一時停止するブレークポイントを設定する行ずつ進んで、変数を検査することができるでしょう、デバッグモードでコードを実行します。

関連する問題