2012-06-28 29 views
1

是否可以在我的應用程序中使用任何工具查看給定方法的調用堆棧的完整列表?查看特定方法的調用堆棧

我希望看到類似的結果,我可以在JProfiler中看到給定的方法。

但是我正在尋找一些開源/免費的替代品,而無需做太多的配置設置。

+0

您可以編輯該方法並在調用它時立即打印堆棧跟蹤嗎? – templatetypedef

回答

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 
1

JConso le,它帶有jdk,它有一個Threads選項卡,它列出了所有正在運行的線程。當你選擇一個,它會顯示跟蹤。您可以連接到本地進程而無需任何設置。如果您是遠程用戶,則必須啓用遠程連接器作爲啓動選項。屏幕截圖來自jdk 1.7。 JConsole