我有这个运行方法的线程:
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:我对调试器不是很熟悉,我不知道这是否可以用它来完成。