Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)

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 “Commands for controlled output” (page 231).
For example, here is how you could 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. Here is an example:
break 403
commands
silent
set x = y + 4
cont
end
5.1.7 Breakpoint menus
Some programming languages (notably C++) permit a single function name to be defined several
times, for application in different contexts. This is called overloading. When a function name is
overloaded, 'break function' is not enough to tell GDB where you want a breakpoint. If you
realize this is a problem, you can use something like 'break function(types)' to specify
which particular version of the function you want. Otherwise, GDB offers you a menu of numbered
choices for different possible breakpoints, and waits for your selection with the prompt '>'. The
first two options are always '[0] cancel' and '[1] all'. Typing 1 sets a breakpoint at each
definition of function, and typing 0 aborts the break command without setting any new breakpoints.
For example, the following session excerpt shows an attempt to set a breakpoint at the overloaded
symbol String::after. We choose three particular definitions of that function name:
((gdb)) b String::after
[0] cancel
[1] all
[2] file:String.cc; line number:867
[3] file:String.cc; line number:860
[4] file:String.cc; line number:875
[5] file:String.cc; line number:853
[6] file:String.cc; line number:846
[7] file:String.cc; line number:735
> 2 4 6
Breakpoint 1 at 0xb26c: file String.cc, line 867.
Breakpoint 2 at 0xb344: file String.cc, line 875.
Breakpoint 3 at 0xafcc: file String.cc, line 846.
Multiple breakpoints were set.
Use the "delete" command to delete unwanted
breakpoints.
((gdb))
5.1 Breakpoints 47