我只是有一个简单的问题,请考虑以下方法
public void do_something(long arg){
//some work
}
并且在eclipse中,我为上面的方法添加了一个断点并运行程序,一切都很好,但我找不到当前堆栈的堆栈?!例如
call do_something
push id
call previous_method
call xyz
pop z
call useZ
push z
我的意思是这个方法是由10种不同的方法和不同的堆栈调用的,我怎么能用eclipse找出完整的线程堆栈(包括方法)?我应该更改一些默认属性还是什么?!
答案 0 :(得分:2)
要放置图像,我会重复我的评论作为答案。
在Debug视图中,您可以找到调用堆栈,在Variables View中可以找到局部变量的实际参数和值:
要获取调用堆栈中其他方法的局部变量的实际参数和值,只需在当前方法上方的方法上单击Debug View。
这不适用于多线程应用程序。您只能看到当前运行该方法的线程的调用堆栈。看着:
在方法foo
中,通过创建计时器来创建线程。如果jvm在bar
暂停,则只能看到TimerTask.run
- >的调用堆栈bar
但不是main
- > foo
- > run
- > bar
。
答案 1 :(得分:1)
您所描述的不是筹码。
这是一段历史。
Eclipse并非旨在为您提供历史记录。但是,还有其他工具可以显示历史记录,例如Chronon。但是,这对你来说可能太贵了!如果您的应用程序非常复杂,它也可能会使用太多内存。
获取历史记录的最简单方法是将System.out.println("some message")
放在很多地方。
在任何地方使用System.out.println可能不方便,因此已经开发了其他一些想法来改进: