Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)
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 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 action.
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 breakpoint, you can specify an ignore count directly as an argument
to continue, rather than using ignore. See “Continuing and
stepping” (page 48).
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
decremented each time. See “Convenience variables” (page 73).
Ignore counts apply to breakpoints, 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 themselves appear on the following lines. Type a line
containing just end to terminate the commands.
To remove all commands from a breakpoint, type commands and
follow it immediately with end; that is, give no commands.
With no bnum argument, commands refers to the last breakpoint,
watchpoint, or catchpoint set (not to the breakpoint most recently
encountered).
Pressing RET as a means of repeating the last GDB command is disabled within a command-list.
You can use breakpoint commands to start your program up again. Simply use the continue
command, or step, or any other command that resumes execution.
Any other commands in the command list, after a command that resumes execution, are ignored.
This is because any time you resume execution (even with a simple next or step), you may
encounter another breakpoint―which could have its own command list, leading to ambiguities
about which list to execute. On Itanium systems, if there is a return command in the command
list, any command after the return command is ignored.
If the first command you specify in a command list is silent, the usual message about stopping
at a breakpoint is not printed. This may be desirable for breakpoints that are to print a specific
message and then continue. If none of the remaining commands print anything, you see no sign
46 Stopping and Continuing