2012-03-31 38 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

回答