Как иметь след всех выполненных функций - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть тема с этим методом запуска:

  public void run(){    
    MAPTable t1 = new MAPTable();
    t1.init();
    while(true){
       try {       
           t1.refresh();
       } catch (UnknownHostException e) {
           e.printStackTrace();
       }
       try {
           sleep(10000);
       } catch (InterruptedException e) {
           e.printStackTrace();
       }            
    }        
  }

Как мне отследить все функции, выполняемые этим потоком, ЗАМЕТИТЕ, что методы init () refresh () могут вызывать многие другие функции на основе многих внешних условий.

Я попытался создать NullPointerException или поместил одну из этих строк кода , указанную здесь , в середине метода run (), но у меня всегда только последний след это метод run () (та же строка, которую я использовал для печати трассировки).

 Thread.currentThread().getStackTrace()

или

 for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
    System.out.println(ste + "\n");
 }

или

Thread.dumpStack()

PS: я не очень знаком с отладчиком, и я не знаю, можно ли это сделать с ним.

1 Ответ

2 голосов
/ 01 апреля 2012

Вы можете найти некоторую полезную информацию в http://blog.zvikico.com/2007/11/five-ways-for-t.html

Я думаю, что некоторые из профилировщиков могут предоставить опции для генерации всех трассировок вызовов.

...