私はバグを追跡するのに本当の問題を抱えており、どのメソッドが特定のメソッドを呼び出したか知ることは大いに役立ちます。 Javaから呼び出し階層を取得する簡単な方法はありますか? Javaは、アプリケーションの小さな部分ですので、私はコンパイルすることはできませんし、eclipse/net beansでアプリケーション全体を実行するので、IDEデバッガの呼び出し階層にアクセスすることはできません。Javaで呼び出し階層を取得する
6
A
答えて
14
Thread.currentThread().getStackTrace();
または
Exception ex = new Exception();
ex.printStackTrace();
それはかなり遅いが、デバッグのための罰金です。 API docs here。
0
Javaのリモートデバッグ機能を試しましたか? Google search to get you started if you haven't
0
1
Javaはアプリのごく一部なので、Eclipse全体/ネットBeanでアプリケーション全体をコンパイルして実行することはできません。したがって、IDEデバッガの呼び出し階層にアクセスすることはできません。
あなたはアプリケーションをまったく実行する必要はありません。 Eclipseでプロジェクトを作成する場合は、組み込みのCall Hierarchyツールを使用して、メソッドを呼び出す可能性のある場所をすべて見つけることができます。
トレードオフ:コール階層ツールは、メソッドが呼び出された場所のすべてを提供します。あなたがすべての可能性を知りたい/必要とするなら、これは良いことです。 Neslsonの提案Thread.currentThread().getStackTrace()
は、この呼び出しのためのプログラムのプロセス中にメソッドが呼び出される場所を示します。この呼び出し中にすべてのコードパスを実行しない可能性があるというニュアンスがあります。特定の動作が表示され、その動作状況を知りたい場合は、getStackTrace()
オプションを使用してください。
関連する問題
- 1. C#:コードからの呼び出し呼び出し階層
- 2. コンストラクタ呼び出しの階層
- 3. IntelliJのフィールド階層の呼び出し
- 4. Rubyメソッド呼び出し階層
- 5. Eclipse/PyDevの呼び出し階層を改善する
- 6. クラス階層内外の呼び出し側を区別する
- 7. プログラムによるEclipseの呼び出し階層へのアクセス
- 8. Javaでクラス階層を取得するには?
- 9. NSView - スーパービュー階層を取得
- 10. 関数呼び出し階層の文書化
- 11. マルチスレッド時間ベースの呼び出し階層
- 12. Javaで呼び出されるメソッドのスタックを取得する
- 13. Javaでネットワークパケット階層を作成する
- 14. 階層&データ構造Javaで
- 15. htmlからjava関数呼び出しにparamを取得
- 16. Javaのプロキシ呼び出しオブジェクトのインタフェースクラスを取得
- 17. エンティティコード内の階層データの取得
- 18. JavaでRest callを呼び出してJSONレスポンスを取得する
- 19. 階層URIで属性を取得する方法は?
- 20. JavaのGoogleドライブのファイル階層を抽出する
- 21. Xcode 4のメソッド呼び出し階層をナビゲートするにはどうすればよいですか?
- 22. LINQ:階層構造コレクションアイテムのパスを取得します。
- 23. rubyは階層呼び出しを表示する方法を提供していますか?
- 24. finish()の呼び出し後にOnPauseでアクティビティを取得する
- 25. 関数呼び出しでスタックオーバーフローを取得する
- 26. ウェブページの内容を取得する(AJAX呼び出しでロード)
- 27. Railsで呼び出し元のURLを取得する
- 28. WebサービスAPIを使用してバージョン階層を取得
- 29. 任意レベルの自己参照階層モデルを取得する
- 30. html階層内の要素を取得する
コールの階層ではなく、スタックトレースが本当に必要なように聞こえます。 (質問の件名を編集することは可能ですか?) –
微妙な違いがない限り、スタックトレースは呼び出し階層です。 –
コールの階層構造は、プロシージャを呼び出すことができるすべての場所のツリーです。 –