Debugging with GDB

Node:Breakpoint Menus, Next:Error in Breakpoints, Previous:Break Commands, Up:Breakpoints

#### 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)