Debugging with GDB (September 2007)

Chapter 5: Stopping and Continuing 41
breakpoint. If expression uses symbols not referenced in the context of the
breakpoint, GDB prints an error message:
No symbol "foo" in current context.
GDB does not actually evaluate expression at the time the condition command
(or a command that sets a breakpoint with a condition, like break if ...) is
given, however. See Section 8.1 [Expressions], page 63.
condition bnum
Remove the condition from breakpoint number bnum. It becomes an ordinary
unconditional breakpoint.
A special case of a breakpoint condition is to stop only when the breakp oint 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 n, the breakpoint does not stop the next n times your program reaches it.
ignore bnum count
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 ac tion.
To make the breakpoint stop the next time it is reached, specify a count of zero.
When you use continue to resume execution of your program from a break-
point, you can spe cify an ignore count directly as an argument to continue,
rather than using ignore. See Section 5.2 [Continuing and stepping], page 44.
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
$foo-- <= 0 using a debugger convenience variable that is decre mented each
time. See Section 8.9 [Convenience variables], page 75.
Ignore counts apply to breakp oints, watchpoints, and catchpoints.
5.1.6 Breakpoint command lists
You can give any breakpoint (or watchpoint or catchpoint) a series of commands to
execute when your program stops due to that breakpoint. For example, you might want to
print the values of certain expressions, or enable other breakpoints.
commands [bnum]
... command-list ...
end Specify a list of commands for breakpoint number bnum. The commands them-
selves appear on the following lines. Type a line containing just end to te rminate
the commands.