【发布时间】:2013-01-24 13:20:41
【问题描述】:
假设我们有一个带有方法 onPoke(..) 的抽象类。
abstract class BaseValuePanel{
void onPoke(int depth){
//blah, blah, ...
}
}
- 类 NumberValuePanel、AttributeValuePanel、CategoryValuePanel 扩展 BaseValuePanel。
- 除其他外,DecimalValuePanel 类扩展了 NumberValuePanel。
- 除其他外,EstimationValuePanel 类扩展了 DecimalValuePanel。
- 没有任何扩展类覆盖 onPoke(..) 方法。
现在,我希望在 onPoke(..) 上放置一个断点,但仅限于通过 EstimationValuePanel 类的对象调用时。
因为现在,如果我在 onPoke(..) 上放置断点,调试器将停止数千个实例(因为 BaseValuePanel 的广泛后代类),其中只有一个是由于调用 EstimationValuePanel 引起的。
为了让调试器仅在通过 EstimationValuePanel 调用该方法时停止,我需要采用什么设置顺序或设置断点策略。
我所说的虚拟断点是什么意思...:
也就是说,在 Java 中与 C# 相反,非私有、非静态、(可覆盖)方法自然是虚拟的。因此,这里是虚拟调用。
【问题讨论】:
-
如果 Eclipse 不能做到这一点,有人能推荐一个替代的 IDE 吗?
-
请不要建议我在 EstimationValuePanel 类上搜索 onPoke 调用并在它之前的语句上放置断点。
标签: java eclipse debugging virtual-functions