Debugging with GDB Manual The GNU Source-Level Debugger (769148-001, March 2014)

break 403
commands
silent
set x = y + 4
cont
end
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))
“Cannot insert breakpoints
Under some operating systems, breakpoints cannot be used in a program if any other process is
running that program. In this situation, attempting to run or continue a program with a breakpoint
causes GDB to print an error message:
Cannot insert breakpoints.
The same program may be running in another process.
When this happens, you have three ways to proceed:
1. Remove or disable the breakpoints, then continue.
2. Suspend GDB, and copy the file containing your program to a new name. Resume GDB and
use the exec-file command to specify that GDB should run your program under that name.
Then start your program again.
3. Relink your program so that the text segment is nonsharable, using the linker option '-N'. The
operating system limitation may not apply to nonsharable executables.
A similar message can be printed if you request too many active hardware-assisted breakpoints
and watchpoints:
Stopped; cannot insert breakpoints.
You may have requested too many hardware breakpoints and watchpoints.
This message is printed when you attempt to resume the program, since only then GDB knows
exactly how many hardware breakpoints and watchpoints it needs to insert.
44 Stopping and Continuing