Debugging with GDB: Debugging C Plus Plus

Next: Decimal Floating Point, Previous: Debugging C, Up: C [Contents][Index]

#### 15.4.1.7 GDB Features for C`++`

Some GDB commands are particularly useful with C`++`, and some are designed specifically for use with C`++`. Here is a summary:

`breakpoint menus`

  When you want a breakpoint in a function whose name is overloaded, GDB has the capability to display a menu of possible breakpoint locations to help you specify which function definition you want. See Ambiguous Expressions.

`rbreak regex`

  Setting breakpoints using regular expressions is helpful for setting breakpoints on overloaded functions that are not members of any special classes. See Setting Breakpoints.

`catch throw`
`catch rethrow`
`catch catch`

  Debug C`++` exception handling using these commands. See Setting Catchpoints.

`ptype typename`

  Print inheritance relationships as well as other information for type typename. See Examining the Symbol Table.

`info vtbl expression.`

  The `info vtbl` command can be used to display the virtual method tables of the object computed by expression. This shows one entry per virtual table; there may be multiple virtual tables when multiple inheritance is in use.

`set print demangle`
`show print demangle`
`set print asm-demangle`
`show print asm-demangle`

  Control whether C`++` symbols display in their source form, both when displaying code as C`++` source and when displaying disassemblies. See Print Settings.

`set print object`
`show print object`

  Choose whether to print derived (actual) or declared types of objects. See Print Settings.

`set print vtbl`
`show print vtbl`

  Control the format for printing virtual function tables. See Print Settings. (The `vtbl` commands do not work on programs compiled with the HP ANSI C`++` compiler (`aCC`).)

`set overload-resolution on`

  Enable overload resolution for C`++` expression evaluation. The default is on. For overloaded functions, GDB evaluates the arguments and searches for a function whose signature matches the argument types, using the standard C`++` conversion rules (see C`++` Expressions, for details). If it cannot find a match, it emits a message.

`set overload-resolution off`

  Disable overload resolution for C`++` expression evaluation. For overloaded functions that are not class member functions, GDB chooses the first function of the specified name that it finds in the symbol table, whether or not its arguments are of the correct type. For overloaded functions that are class member functions, GDB searches for a function whose signature exactly matches the argument types.

`show overload-resolution`

  Show the current setting of overload resolution.

`Overloaded symbol names`

  You can specify a particular definition of an overloaded symbol, using the same notation that is used to declare such symbols in C`++`: type `symbol(types)` rather than just symbol. You can also use the GDB command-line word completion facilities to list the available choices, or to finish the type list for you. See Command Completion, for details on how to do this.

Next: Decimal Floating Point, Previous: Debugging C, Up: C [Contents][Index]