f78
Break conditions
This is the converse of using assertions for program validation; in that
situation, you want to stop when the assertion is violated—that is, when the
condition is false. In C, if you want to test an assertion expressed by the condition,
Conditions are also accepted for watchpoints; you may not need them, since a
watchpoint is inspecting the value of an expression anyhow—but it might be
simpler, say, to just set a watchpoint on a variable name, and specify a condition
that tests whether the new value is an interesting one.
Break conditions can have side effects, and may even call functions in your
program. This can be useful, for example, to activate functions that log program
progress, or to use your own print functions to format special data structures.
The effects are completely predictable unless there is another enabled
breakpoint at the same address. (In that case, GDB might see the other breakpoint
first and stop your program without checking the condition of this one.) Note that
breakpoint commands are usually more convenient and flexible for the purpose of
performing side effects when a breakpoint is reached (see
Break conditions can be specified when a breakpoint is set, by using ‘
A special case of a breakpoint condition is to stop only when the breakpoint
has been reached a certain number of times. This is so useful that there is a
special way to do it, using the ignore count of the breakpoint. Every breakpoint has an ignore count, which is an integer.
Most of the time, the ignore count is zero, and therefore has no effect. But
if your program reaches a breakpoint whose ignore count is positive, then
instead of stopping, it just decrements the ignore count by one and continues. As a
result, if the ignore count value is
To make the breakpoint stop the next time it is reached, specify a count of
zero.
When you use
If a breakpoint has a positive ignore count and a condition, the condition is
not checked. Once the ignore count reaches zero, GDB resumes checking the
condition.
You could achieve the effect of the ignore count with a condition such as ‘
Specify expression as the break condition for breakpoint or watchpoint number, bnum. After you set a condition, breakpoint bnum stops your program only if the value of expression is true (nonzero, in C). When you use condition, GDB checks expression immediately for syntactic correctness, and to determine whether symbols in it
have referents in the context of your breakpoint. GDB does not actually
evaluate expression at the time the condition command is given, however. See Expressions.
Remove the condition from breakpoint number bnum. It becomes an ordinary unconditional breakpoint.
Set the ignore count of breakpoint number bnum to count. The next count times the breakpoint is reached, your program’s execution does not stop;
other than to decrement the ignore count, GDB takes no action.