Next: , Previous: , Up: Commands   [Contents][Index]

3.2 Command Settings

Many commands change their behavior according to command-specific variables or settings. These settings can be changed with the set subcommands. For example, the print command (see Examining Data) prints arrays differently depending on settings changeable with the commands set print elements NUMBER-OF-ELEMENTS and set print array-indexes, among others.

You can change these settings to your preference in the gdbinit files loaded at GDB startup. See Startup.

The settings can also be changed interactively during the debugging session. For example, to change the limit of array elements to print, you can do the following:

(gdb) set print elements 10
(gdb) print some_array
$1 = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90...}

The above set print elements 10 command changes the number of elements to print from the default of 200 to 10. If you only intend this limit of 10 to be used for printing some_array, then you must restore the limit back to 200, with set print elements 200.

Some commands allow overriding settings with command options. For example, the print command supports a number of options that allow overriding relevant global print settings as set by set print subcommands. See print options. The example above could be rewritten as:

(gdb) print -elements 10 -- some_array
$1 = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90...}

Alternatively, you can use the with command to change a setting temporarily, for the duration of a command invocation.

with setting [value] [-- command]
w setting [value] [-- command]

Temporarily set setting to value for the duration of command.

setting is any setting you can change with the set subcommands. value is the value to assign to setting while running command.

If no command is provided, the last command executed is repeated.

If a command is provided, it must be preceded by a double dash (--) separator. This is required because some settings accept free-form arguments, such as expressions or filenames.

For example, the command

(gdb) with print array on -- print some_array

is equivalent to the following 3 commands:

(gdb) set print array on
(gdb) print some_array
(gdb) set print array off

The with command is particularly useful when you want to override a setting while running user-defined commands, or commands defined in Python or Guile. See Extending GDB.

(gdb) with print pretty on -- my_complex_command

To change several settings for the same command, you can nest with commands. For example, with language ada -- with print elements 10 temporarily changes the language to Ada and sets a limit of 10 elements to print for arrays and strings.

Next: , Previous: , Up: Commands   [Contents][Index]