使用VStudio 2010和C#
我有一个名为Mammal的课程。狗和猫继承自哺乳动物。
然而,一条特定的狗正在bar and,我需要找出原因。
我想在Mammal类中设置一个断点 - 但只有当Dog类正在执行并将Mammal作为基类调用时。我有很多狗和猫的实例 - 我希望为特定的Dog实例设置断点 - 称为Fido。
希望这是有道理的。这可能吗?我没有看到条件断点如何帮助我做到这一点。
由于
答案 0 :(得分:4)
您可以Condition
使用BreakPoint
来实现此目的。 Breakpoint
仅在您输入的Condition
为真时才会出现
请参阅本教程How to: Specify a Breakpoint Condition
您可以使用条件this is Dog && this.Name == "Fido"
答案 1 :(得分:0)
使用条件断点
this is Dog && (this as Dog).Name == "Fido"
答案 2 :(得分:0)
其他人建议使用条件断点,但我总是发现它们会在调试器评估条件时减慢调试速度。我通常会做以下事情: -
在您的基类中添加:
#if DEBUG
BreakOnParticularPet ();
#endif
您想要停止程序然后添加:
void BreakOnParticularPet ()
{
if (this pet is the one we're interested in) // pseudocode
{
System.Diagnostics.Debugger.Break ();
}
}
答案 3 :(得分:0)
您可以将Dog子类化为SubDog,并且在创建Fido时仅调用new SubDog
。在SubDog的构造函数中设置一个断点,或重写Dog中需要调试的方法,让覆盖调用基本方法,并在覆盖中设置断点。