2012-03-31 41 views
0

我有這個運行方法的線程:如何有所有執行功能的跟蹤

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()的刷新()方法可以基於許多外部條件調用許多其他函數。

我試圖做一個NullPointerException異常或放置的代碼referenced here在run()方法中的線路之一,但我一直只是最後一絲這是run()方法(同行我已經用來打印跟蹤)。

Thread.currentThread().getStackTrace() 

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

Thread.dumpStack() 

PS:我不太熟悉的調試器,我不知道這是否可以用它來完成。

+0

你的實際最終目標是什麼?你爲什麼想要這個被調用的方法的痕跡? – unholysampler 2012-03-31 22:03:31

+0

那麼我想要的線程所有執行的功能列表只是爲了檢查它的每一件事情OK – 2012-03-31 22:09:27

+2

天真的方式是在每個可能調用的函數中添加日誌記錄,顯示線程ID - 不知道有更好的方法。 – assylias 2012-03-31 22:11:38

回答