1

任意のツールを使用して、アプリケーション内の特定のメソッドのコール スタックの完全なリストを表示することはできますか?

特定のメソッドについて、JProfiler で確認できるのと同様の結果を確認したいと考えています。

ただし、オープンソース/無料の代替手段を探しており、構成のセットアップをあまり行う必要はありません。

4

3 に答える 3

1

よくわかりませんが、この方法のようなものを探しているのかもしれません

class MyInfo{
    static void showStack(){
        try{
            throw new Exception();
        }catch(Exception e){
            StackTraceElement[] ste=e.getStackTrace();
            for(int i=1; i<ste.length;i++){
                System.out.println(ste[i].getClassName()+"."+ste[i].getMethodName());
            }
        }
    }
}

試してみよう

class C1 {
    void methodA() {MyInfo.showStack();}
    void methodB() {methodA();}
}

class C2 {
    static void methodX() {
        C1 c1 = new C1();
        c1.methodB();
    };
    //TEST
    public static void main(String[] args) {
        C2.methodX();
    }
}

アウト

C1.methodA
C1.methodB
C2.methodX
C2.main
于 2012-06-28T23:38:03.517 に答える
1

jdk に付属している JConsole には、実行中のすべてのスレッドを一覧表示する [スレッド] タブがあります。いずれかを選択すると、トレースが表示されます。セットアップなしでローカル プロセスに接続できます。リモートにいる場合は、起動オプションとしてリモート コネクタを有効にする必要があります。スクリーン ショットは jdk 1.7 のものです。 JConsole

于 2012-06-29T00:40:46.233 に答える
0

これはあなたが望むものを手に入れますか?

java.lang.Throwable.getStackTrace()

于 2012-06-28T23:13:00.923 に答える