| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You can alter the way GDB interacts with you by using the
set command. For commands controlling how GDB displays
data, see Print Settings. Other settings are
described here.
| 22.1 Prompt | ||
| 22.2 Command Editing | Command editing | |
| 22.3 Command History | Command history | |
| 22.4 Screen Size | Screen size | |
| 22.5 Numbers | ||
| 22.6 Configuring the Current ABI | Configuring the current ABI | |
| 22.7 Optional Warnings and Messages | Optional warnings and messages | |
| 22.8 Optional Messages about Internal Happenings | Optional messages about internal happenings | |
| 22.9 Other Miscellaneous Settings |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GDB indicates its readiness to read a command by printing a string
called the prompt. This string is normally `(gdb)'. You
can change the prompt string with the set prompt command. For
instance, when debugging GDB with GDB, it is useful to change
the prompt in one of the GDB sessions so that you can always tell
which one you are talking to.
Note: set prompt does not add a space for you after the
prompt you set. This allows you to set a prompt which ends in a space
or a prompt that does not.
set prompt newpromptDirects GDB to use newprompt as its prompt string henceforth.
show promptPrints a line of the form: `Gdb's prompt is: your-prompt'
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GDB reads its input commands via the Readline interface. This
GNU library provides consistent behavior for programs which provide a
command line interface to the user. Advantages are GNU Emacs-style
or vi-style inline editing of commands, csh-like history
substitution, and a storage and recall of command history across
debugging sessions.
You may control the behavior of command line editing in GDB with the
command set.
set editingset editing onEnable command line editing (enabled by default).
set editing offDisable command line editing.
show editingShow whether command line editing is enabled.
See section Command Line Editing, for more details about the Readline
interface. Users unfamiliar with GNU Emacs or vi are
encouraged to read that chapter.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GDB can keep track of the commands you type during your debugging sessions, so that you can be certain of precisely what happened. Use these commands to manage the GDB command history facility.
GDB uses the GNU History library, a part of the Readline package, to provide the history facility. See section Using History Interactively, for the detailed description of the History library.
To issue a command to GDB without affecting certain aspects of the state which is seen by users, prefix it with `server ' (see section The Server Prefix). This means that this command will not affect the command history, nor will it affect GDB's notion of which command to repeat if RET is pressed on a line by itself.
The server prefix does not affect the recording of values into the value
history; to print a value without recording it into the value history,
use the output command instead of the print command.
Here is the description of GDB commands related to command history.
set history filename fnameSet the name of the GDB command history file to fname.
This is the file where GDB reads an initial command history
list, and where it writes the command history from this session when it
exits. You can access this list through history expansion or through
the history command editing characters listed below. This file defaults
to the value of the environment variable GDBHISTFILE, or to
`./.gdb_history' (`./_gdb_history' on MS-DOS) if this variable
is not set.
set history saveset history save onRecord command history in a file, whose name may be specified with the
set history filename command. By default, this option is disabled.
set history save offStop recording command history in a file.
set history size sizeSet the number of commands which GDB keeps in its history list.
This defaults to the value of the environment variable
HISTSIZE, or to 256 if this variable is not set.
History expansion assigns special meaning to the character !. See section Event Designators, for more details.
Since ! is also the logical not operator in C, history expansion
is off by default. If you decide to enable history expansion with the
set history expansion on command, you may sometimes need to
follow ! (when it is used as logical not, in an expression) with
a space or a tab to prevent it from being expanded. The readline
history facilities do not attempt substitution on the strings
!= and !(, even when history expansion is enabled.
The commands to control history expansion are:
set history expansion onset history expansionEnable history expansion. History expansion is off by default.
set history expansion offDisable history expansion.
show historyshow history filenameshow history saveshow history sizeshow history expansionThese commands display the state of the GDB history parameters.
show history by itself displays all four states.
show commandsDisplay the last ten commands in the command history.
show commands nPrint ten commands centered on command number n.
show commands +Print ten commands just after the commands last printed.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Certain commands to GDB may produce large amounts of information output to the screen. To help you read all of it, GDB pauses and asks you for input at the end of each page of output. Type RET when you want to continue the output, or q to discard the remaining output. Also, the screen width setting determines when to wrap lines of output. Depending on what is being printed, GDB tries to break the line at a readable place, rather than simply letting it overflow onto the following line.
Normally GDB knows the size of the screen from the terminal
driver software. For example, on Unix GDB uses the termcap data base
together with the value of the TERM environment variable and the
stty rows and stty cols settings. If this is not correct,
you can override it with the set height and set
width commands:
set height lppshow heightset width cplshow widthThese set commands specify a screen height of lpp lines and
a screen width of cpl characters. The associated show
commands display the current settings.
If you specify a height of zero lines, GDB does not pause during output no matter how long the output is. This is useful if output is to a file or to an editor buffer.
Likewise, you can specify `set width 0' to prevent GDB from wrapping its output.
set pagination onset pagination offTurn the output pagination on or off; the default is on. Turning
pagination off is the alternative to set height 0.
show paginationShow the current pagination mode.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
You can always enter numbers in octal, decimal, or hexadecimal in GDB by the usual conventions: octal numbers begin with `0', decimal numbers end with `.', and hexadecimal numbers begin with `0x'. Numbers that neither begin with `0' or `0x', nor end with a `.' are, by default, entered in base 10; likewise, the default display for numbers--when no particular format is specified--is base 10. You can change the default base for both input and output with the commands described below.
set input-radix baseSet the default base for numeric input. Supported choices for base are decimal 8, 10, or 16. base must itself be specified either unambiguously or using the current input radix; for example, any of
set input-radix 012 set input-radix 10. set input-radix 0xa |
sets the input base to decimal. On the other hand, `set input-radix 10' leaves the input radix unchanged, no matter what it was, since `10', being without any leading or trailing signs of its base, is interpreted in the current radix. Thus, if the current radix is 16, `10' is interpreted in hex, i.e. as 16 decimal, which doesn't change the radix.
set output-radix baseSet the default base for numeric display. Supported choices for base are decimal 8, 10, or 16. base must itself be specified either unambiguously or using the current input radix.
show input-radixDisplay the current default base for numeric input.
show output-radixDisplay the current default base for numeric display.
set radix [base]show radixThese commands set and show the default base for both input and output
of numbers. set radix sets the radix of input and output to
the same base; without an argument, it resets the radix back to its
default value of 10.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GDB can determine the ABI (Application Binary Interface) of your application automatically. However, sometimes you need to override its conclusions. Use these commands to manage GDB's view of the current ABI.
One GDB configuration can debug binaries for multiple operating
system targets, either via remote debugging or native emulation.
GDB will autodetect the OS ABI (Operating System ABI) in use,
but you can override its conclusion using the set osabi command.
One example where this is useful is in debugging of binaries which use
an alternate C library (e.g. UCLIBC for GNU/Linux) which does
not have the same identifying marks that the standard C library for your
platform provides.
show osabiShow the OS ABI currently in use.
set osabiWith no argument, show the list of registered available OS ABI's.
set osabi abiSet the current OS ABI to abi.
Generally, the way that an argument of type float is passed to a
function depends on whether the function is prototyped. For a prototyped
(i.e. ANSI/ISO style) function, float arguments are passed unchanged,
according to the architecture's convention for float. For unprototyped
(i.e. K&R style) functions, float arguments are first promoted to type
double and then passed.
Unfortunately, some forms of debug information do not reliably indicate whether a function is prototyped. If GDB calls a function that is not marked as prototyped, it consults set coerce-float-to-double.
set coerce-float-to-doubleset coerce-float-to-double onArguments of type float will be promoted to double when passed
to an unprototyped function. This is the default setting.
set coerce-float-to-double offArguments of type float will be passed directly to unprototyped
functions.
show coerce-float-to-doubleShow the current setting of promoting float to double.
GDB needs to know the ABI used for your program's C++
objects. The correct C++ ABI depends on which C++ compiler was
used to build your application. GDB only fully supports
programs with a single C++ ABI; if your program contains code using
multiple C++ ABI's or if GDB can not identify your
program's ABI correctly, you can tell GDB which ABI to use.
Currently supported ABI's include "gnu-v2", for g++ versions
before 3.0, "gnu-v3", for g++ versions 3.0 and later, and
"hpaCC" for the HP ANSI C++ compiler. Other C++ compilers may
use the "gnu-v2" or "gnu-v3" ABI's as well. The default setting is
"auto".
show cp-abiShow the C++ ABI currently in use.
set cp-abiWith no argument, show the list of supported C++ ABI's.
set cp-abi abiset cp-abi autoSet the current C++ ABI to abi, or return to automatic detection.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
By default, GDB is silent about its inner workings. If you are
running on a slow machine, you may want to use the set verbose
command. This makes GDB tell you when it does a lengthy
internal operation, so you will not think it has crashed.
Currently, the messages controlled by set verbose are those
which announce that the symbol table for a source file is being read;
see symbol-file in Commands to Specify Files.
set verbose onEnables GDB output of certain informational messages.
set verbose offDisables GDB output of certain informational messages.
show verboseDisplays whether set verbose is on or off.
By default, if GDB encounters bugs in the symbol table of an object file, it is silent; but if you are debugging a compiler, you may find this information useful (see section Errors Reading Symbol Files).
set complaints limitPermits GDB to output limit complaints about each type of unusual symbols before becoming silent about the problem. Set limit to zero to suppress all complaints; set it to a large number to prevent complaints from being suppressed.
show complaintsDisplays how many symbol complaints GDB is permitted to produce.
By default, GDB is cautious, and asks what sometimes seems to be a lot of stupid questions to confirm certain commands. For example, if you try to run a program which is already running:
(gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) |
If you are willing to unflinchingly face the consequences of your own commands, you can disable this "feature":
set confirm offDisables confirmation requests.
set confirm onEnables confirmation requests (the default).
show confirmDisplays state of confirmation requests.
If you need to debug user-defined commands or sourced files you may find it useful to enable command tracing. In this mode each command will be printed as it is executed, prefixed with one or more `+' symbols, the quantity denoting the call depth of each command.
set trace-commands onEnable command tracing.
set trace-commands offDisable command tracing.
show trace-commandsDisplay the current state of command tracing.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GDB has commands that enable optional debugging messages from various GDB subsystems; normally these commands are of interest to GDB maintainers, or when reporting a bug. This section documents those commands.
set exec-done-displayTurns on or off the notification of asynchronous commands' completion. When on, GDB will print a message when an asynchronous command finishes its execution. The default is off.
show exec-done-displayDisplays the current setting of asynchronous command completion notification.
set debug archTurns on or off display of gdbarch debugging info. The default is off
show debug archDisplays the current state of displaying gdbarch debugging info.
set debug aix-threadDisplay debugging messages about inner workings of the AIX thread module.
show debug aix-threadShow the current state of AIX thread debugging info display.
set debug dwarf2-dieDump DWARF2 DIEs after they are read in. The value is the number of nesting levels to print. A value of zero turns off the display.
show debug dwarf2-dieShow the current state of DWARF2 DIE debugging.
set debug displacedTurns on or off display of GDB debugging info for the displaced stepping support. The default is off.
show debug displacedDisplays the current state of displaying GDB debugging info related to displaced stepping.
set debug eventTurns on or off display of GDB event debugging info. The default is off.
show debug eventDisplays the current state of displaying GDB event debugging info.
set debug expressionTurns on or off display of debugging info about GDB expression parsing. The default is off.
show debug expressionDisplays the current state of displaying debugging info about GDB expression parsing.
set debug frameTurns on or off display of GDB frame debugging info. The default is off.
show debug frameDisplays the current state of displaying GDB frame debugging info.
set debug gnu-natTurns on or off debugging messages from the GNU/Hurd debug support.
show debug gnu-natShow the current state of GNU/Hurd debugging messages.
set debug infrunTurns on or off display of GDB debugging info for running the inferior. The default is off. `infrun.c' contains GDB's runtime state machine used for implementing operations such as single-stepping the inferior.
show debug infrunDisplays the current state of GDB inferior debugging.
set debug lin-lwpTurns on or off debugging messages from the Linux LWP debug support.
show debug lin-lwpShow the current state of Linux LWP debugging messages.
set debug lin-lwp-asyncTurns on or off debugging messages from the Linux LWP async debug support.
show debug lin-lwp-asyncShow the current state of Linux LWP async debugging messages.
set debug observerTurns on or off display of GDB observer debugging. This includes info such as the notification of observable events.
show debug observerDisplays the current state of observer debugging.
set debug overloadTurns on or off display of GDB C++ overload debugging info. This includes info such as ranking of functions, etc. The default is off.
show debug overloadDisplays the current state of displaying GDB C++ overload debugging info.
set debug remoteTurns on or off display of reports on all packets sent back and forth across the serial line to the remote machine. The info is printed on the GDB standard output stream. The default is off.
show debug remoteDisplays the state of display of remote packets.
set debug serialTurns on or off display of GDB serial debugging info. The default is off.
show debug serialDisplays the current state of displaying GDB serial debugging info.
set debug solib-frvTurns on or off debugging messages for FR-V shared-library code.
show debug solib-frvDisplay the current state of FR-V shared-library code debugging messages.
set debug targetTurns on or off display of GDB target debugging info. This info
includes what is going on at the target level of GDB, as it happens. The
default is 0. Set it to 1 to track events, and to 2 to also track the
value of large memory transfers. Changes to this flag do not take effect
until the next time you connect to a target or use the run command.
show debug targetDisplays the current state of displaying GDB target debugging info.
set debug timestampTurns on or off display of timestamps with GDB debugging info. When enabled, seconds and microseconds are displayed before each debugging message.
show debug timestampDisplays the current state of displaying timestamps with GDB debugging info.
set debugvarobjTurns on or off display of GDB variable object debugging info. The default is off.
show debugvarobjDisplays the current state of displaying GDB variable object debugging info.
set debug xmlTurns on or off debugging messages for built-in XML parsers.
show debug xmlDisplays the current state of XML debugging messages.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
set interactive-modeIf on, forces GDB to operate interactively.
If off, forces GDB to operate non-interactively,
If auto (the default), GDB guesses which mode to use,
based on whether the debugger was started in a terminal or not.
In the vast majority of cases, the debugger should be able to guess correctly which mode should be used. But this setting can be useful in certain specific cases, such as running a MinGW GDB inside a cygwin window.
show interactive-modeDisplays whether the debugger is operating in interactive mode or not.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on January, 20 2010 using texi2html 1.76.