Reputation: 16186
I want to set a breakpoint on a certain line in C# code when some other variable is equal to a specific value, say:
MyStringVariable == "LKOH"
How can I do that?
I tried to right click on breakpoint icon -> Condition and then typed MyStringVariable == "LKOH"
and Visual Studio said it cannot evaluate it.
Upvotes: 19
Views: 42100
Reputation: 886
In my case, I forgot that I was debugging a VB application.
In VB equality is =
not ==
like many other languages, thus my conditional breakpoint needed to be myString = "someValue"
not myString == "someValue"
Upvotes: 4
Reputation: 49251
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.
Upvotes: 5
Reputation: 3769
if (MyStringVariable == "LKOH") Debugger.Break();
you'll need System.Diagnostics namespace
http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx
Upvotes: 37
Reputation: 941208
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.
Upvotes: 25
Reputation: 16926
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
Upvotes: 1
Reputation: 18615
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.
Upvotes: 7