[英]Eclipse debugging getting full stack
我只是有一个简单的问题,请考虑以下方法
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的完整堆栈(包括方法)? 我应该更改一些默认属性还是什么?!
为了放置图像,我重复我的评论作为答案。
在Debug视图中,您可以找到调用堆栈,在Variables View中可以找到局部变量的实际参数和值:
要获取调用堆栈中其他方法的局部变量的实际参数和值,只需在当前方法上方的方法上单击Debug视图。
这不适用于多线程应用程序。 您只能看到当前运行该方法的线程的调用堆栈。 看着:
在方法foo
通过创建计时器来创建线程。 如果jvm挂起bar
,它只能看到TimerTask.run
的调用堆栈 - > bar
而不是main
- > foo
- > run
- > bar
。
你所描述的不是堆栈。
这是一段历史。
Eclipse不是为了给你一个历史而设计的。 但是,还有其他工具可以显示历史记录,例如Chronon。 但是,这对你来说可能太贵了! 如果您的应用程序非常复杂,它也可能会使用太多内存。
然而,获取历史记录的最简单方法是将System.out.println("some message")
放在很多地方。
在任何地方使用System.out.println都不方便,因此已经开发了其他一些想法来改进:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.