Eclipse调试断点只在特定子类的虚拟调用中停止
问题描述:
假设我们有一个带onPoke(..)方法的抽象类。Eclipse调试断点只在特定子类的虚拟调用中停止
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#相反,非私有的,非静态的(可重写的)方法自然是虚拟的。因此,在这里虚拟调用。
答
当然,您可以重写EstimationValuePanel类中的方法,并仅在此处设置断点。
但你也可以使用条件断点:去的方法onPoke()断点的属性(右键单击或按Ctrl +双击),然后选择“条件”。 在文本区域下面你可以输入以下条件:
this instanceof EstimationValuePanel
这意味着条件评估每次输入的方法。因此,如果您遇到性能问题,您应该优先重写EstimationValuePanel中的方法。
如果Eclipse不能这样做,有人可以建议一个替代IDE可以做到吗? – 2013-02-08 17:46:05
请不要建议我在类EstimationValuePanel上搜索onPoke调用,并在它之前的语句上放置一个断点。 – 2013-02-08 17:51:37