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

3 GDB Commands
You can abbreviate a GDB command to the first few letters of the command name, if that
abbreviation is unambiguous; and you can repeat certain GDB commands by typing just RET).
You can also use the TAB key to get GDB to fill out the rest of a word in a command (or to show
you the alternatives available, if there is more than one possibility).
Command syntax
A GDB command is a single line of input. There is no limit on how long it can be.
It starts with a command name, and is followed by arguments whose meaning depends on
the command name.
GDB command names can be truncated if that abbreviation is unambiguous. The possible
command abbreviations are listed in the documentation for individual commands. In some
cases, even ambiguous abbreviations are allowed; for example, s is specially defined as
equivalent to step even though there are other commands whose names start with s. You
can test abbreviations by using them as arguments to the help command.
A blank line as input to GDB (typing just RET) means to repeat the previous command. Some
commands (for example, run) do not repeat this way. These are commands whose unintentional
repetition might cause trouble and which you are unlikely to want to repeat. The list and
x commands, when you repeat them with RET, construct new arguments rather than repeating
exactly as typed. This permits easy scanning of source or memory.
GDB can also use RET in another way: to partition lengthy output, in a way similar to the
common utility more (see “Setting the GDB Screen Size” (page 217)). Since it is easy to press
one RET too many in this situation, GDB disables command repetition after any command that
generates this sort of display.
Any text from a # to the end of the line is a comment; it does nothing. This is useful mainly in
command files (see “Command files” (page 221)).
Command completion
GDB can fill in the rest of a word in a command for you, if there is only one possibility; it can also
show you what the valid possibilities are for the next word in a command, at any time. This works
for GDB commands, GDB subcommands, and the names of symbols in your program.
Press the TAB key whenever you want GDB to fill out the rest of a word. If there is only one
possibility, GDB fills in the word, and waits for you to finish the command (or press RET to enter
it). For example, if you type
((gdb)) info bre TAB
GDB fills in the rest of the word 'breakpoints', since that is the only info subcommand beginning
with 'bre':
((gdb)) info breakpoints
You can either press RET at this point, to run the info breakpoints command, or backspace
and enter something else, if 'breakpoints' does not look like the command you expected. (If
you were sure you wanted info breakpoints in the first place, you might as well just type RET
immediately after 'info bre', to exploit command abbreviations rather than command completion.)
If there is more than one possibility for the next word when you press TAB , GDB sounds a bell.
You can either supply more characters and try again, or just press TAB a second time; GDB displays
all the possible completions for that word. For example, you might want to set a breakpoint on a
subroutine whose name begins with 'make_', but when you type b make_TAB GDB just sounds
the bell. Typing TAB again displays all the function names in your program that begin with those
characters, for example:
24 GDB Commands