Visual Studio中的条件断点

时间:2010-02-19 14:01:43

标签: c# visual-studio debugging conditional-breakpoint

当一些其他变量等于特定值时,我想在C#代码中的某一行设置断点,例如:

MyStringVariable == "LKOH"

我该怎么做?

我试图右键点击断点图标 - >条件,然后键入MyStringVariable == "LKOH"和Visual Studio说它无法评估它。

7 个答案:

答案 0 :(得分:35)

if (MyStringVariable == "LKOH") Debugger.Break();

你需要System.Diagnostics名称空间

http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx

答案 1 :(得分:25)

示例代码:

static void Main(string[] args) {
  string myvar;
  for (int ix = 0; ix < 10; ++ix) {
    if (ix == 5) myvar = "bar"; else myvar = "foo";
  }    // <=== Set breakpoint here
}

条件:myvar ==“bar”

运作良好。

答案 2 :(得分:7)

就像在代码中一样,您需要使用:

MyStringVariable == "LKOH"

双等于是关键。没有它,它说它无法评估,因为你的表达式没有计算为布尔值。

答案 3 :(得分:5)

你应该能够做到这一点。您是否在条件中使用Exchange实例名称?条件应该类似于myExchange.Name == "LKOH"而不是Exchange.Name == "LKOH"

顺便说一句,使用赋值运算符=而不是等于运算符==会有效但它会设置属性并浪费你的半小时来弄清楚到底是怎么回事上。我昨天犯了这个错误。

答案 4 :(得分:1)

您正在测试的变量需要在断点处的范围内。

var x = "xxx";
{ 
  var y = "yyy";
}

brak(); // x is in scope, y isn't

答案 5 :(得分:1)

在我的情况下,我忘记了我正在调试VB应用程序。

在VB中,与其他语言一样=而不是==,因此我的条件断点需要myString = "someValue"而不是myString == "someValue"

答案 6 :(得分:0)

对我来说,它达到了条件断点。

Conditional breakpoint