When you set a breakpoint, you can make it conditional (whether it stops or not) by setting these parameters in the Optional parameters page of any breakpoint wizard (usually by editing an existing breakpoint):
| Optional breakpoint parameter | Description | Type of breakpoint supported |
|---|---|---|
| Thread | Breakpoints can be thread-specific. In the wizard, you can specify whether the breakpoint applies to all threads (the default) or only to one (n=one) specific thread. |
This parameter is supported by all breakpoint types. |
| Frequency | Use the Frequency controls to tell the debugger when to stop
on a breakpoint and when to skip it. The debugger keeps track of how
many times each breakpoint is encountered. The fields in this section
tell the debugger on which encounter of a breakpoint the debugger
will first stop, how often it will stop, and on which encounter the
debugger will no longer stop. The following parameters are used to set the breakpoint frequency:
|
This parameter is supported by all breakpoint types. |
| Expression | You can enter an expression into this field. The execution
of the program stops at the breakpoint only if the condition specified
in this field tests true (any non-zero value is considered true). For example, if you are debugging a C++ program you can type the following expression:
A conditional expression is any valid expression in the language of the location of the breakpoint that evaluates to a number, and does not have side effects or involve calling a function. For C and C++, this means that all assignment operators, and the increment and decrement operators (++ and --) are not permitted. Attention: Even though an application does not appear to stop
at a breakpoint whose condition has not been met, the debugger temporarily
suspends the application while it evaluates the condition. For most
purposes, this short pause is not significant. However, in a multithreaded
application, this may cause the operating system to change the order
in which threads are dispatched.
Note:
|
Line, Entry, and Address. |