2012-06-28 3 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

Смежные вопросы