f78
Breakpoint command lists
Contents|Index|Previous|Next
Breakpoint command lists
You can give any breakpoint (or watchpoint) 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 or watchpoint set (not to the breakpoint most
recently encountered).
Using
Return 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 are ignored, after a command that
resumes execution. 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.
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 that the
breakpoint was reached.
silent is meaningful only at the beginning of a breakpoint command list.
The commands
echo, output, and printf allow you to print precisely controlled output, and are often useful in
silent breakpoints.
See
C
5d6
ommands for controlled output.
For example, the following shows how to use breakpoint commands to print the
value of
x at entry to foo whenever x is positive.
break foo if x>0
commands
silent
printf "x is %d\n",x
cont
end
One application for breakpoint commands is to compensate for one bug so you
can test for another. Put a breakpoint just after the erroneous line of code,
give it a condition to detect the case in which something erroneous has been done,
and give it commands to assign correct values to any variables that need them.
End with the continue command so that your program does not stop, and start with the silent command so that no output is produced. Thefollowing is an example.
break 403
commands
silent
setx=y +4
cont
end
0