views:

417

answers:

5

I want to set breakpoint on certain line in C# code when some other variable is equal to specific value

say MyStringVariable == "LKOH"

Please suggest. I tried right click on breakpoint icon->Condition then typed MyStringVariable == "LKOH" and Visual Studio is saying cannot evalute.

+1  A: 

Just like in code, you need to use:

MyStringVariable == "LKOH"

The double-equals is the key. Without it, it's saying it can't evaluate because your expression doesn't evaluate to a boolean.

David
+1  A: 

The variable you are testing for needs to be in scope at the breakpoint.

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

brak(); // x is in scope, y isn't
Obalix
+1  A: 

Sample code:

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
}

Condition: myvar == "bar"

Works well.

Hans Passant
+2  A: 

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

you'll need System.Diagnostics namespace

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

Danny G
+1  A: 

You should be able to make this work. Are you using the Exchange instance name in the condition? The condition should be something like myExchange.Name == "LKOH" not Exchange.Name == "LKOH".

By the way, using the assignment operator = instead of the equality operator == will work but it will set the property and waste 1/2 hour of your time figuring out what the hell is going on. I made this mistake just yesterday.

Jamie Ide