在对象实例中设置VStudio断点

时间:2011-11-22 10:46:20

标签: c# visual-studio-2010 breakpoints

使用VStudio 2010和C#

我有一个名为Mammal的课程。狗和猫继承自哺乳动物。

然而,一条特定的狗正在bar and,我需要找出原因。

我想在Mammal类中设置一个断点 - 但只有当Dog类正在执行并将Mammal作为基类调用时。我有很多狗和猫的实例 - 我希望为特定的Dog实例设置断点 - 称为Fido。

希望这是有道理的。这可能吗?我没有看到条件断点如何帮助我做到这一点。

由于

4 个答案:

答案 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中需要调试的方法,让覆盖调用基本方法,并在覆盖中设置断点。