You have some fairly complicated code that is having a problem after many iterations, and you need an easy way to stop execution when the conditions are met.
Set a conditional breakpoint using an expression in the Visual Studio debugger. The value of the expression will determine whether program execution breaks when the breakpoint is hit.
To set a conditional breakpoint in the Visual Studio debugger:
Set a breakpoint in the usual fashion by clicking in the gray border to the left of the line where you want execution to break.
Right-click the breakpoint and select the Breakpoint Properties command from the menu.
Use the Breakpoint Properties dialog box to set the conditions for the break, as shown in Figure 10-5. Typically, you'll use the Function tab, select the Breakpoints button, and set a conditional expression like any of these:
counter = 5000 i=100 AND j=150 message.Length > 0
counter == 5000 i==100 && j==150 message.Length > 0
When you run the program, execution will break at the location when the expression is true or has changed, depending on the option you've chosen in the dialog box.
Figure 10-5. Setting a conditional breakpoint in Visual Studio
You can view the contents of the Visual Studio Locals window to verify the values of the variables involved in the expression. Access the Locals window by selecting the Debug Windows Locals command; the Locals window is accessible only when the VS.NET Debugger is active.
Another approach is to set a hit count within the Function tab. The hit count lets you specify how many times the breakpoint is hit before the debugger enters break mode. For example, you might choose to break when the hit count is equal to 100. The debugger will break only when the hit count reaches the target number.
10.7.4 See Also
All the rules for setting breakpoint expressions are available from Visual Studio Help under the "Expressions in the Debugger" topic, which is accessible from the Breakpoint Properties dialog box (the expression evaluator accepts most expressions written in Visual Basic or C#).