Added doc for command-line completion, incl new FNF support for quoted strings

w/C++ overloaded fns.
This commit is contained in:
Roland Pesch 1992-06-24 20:45:53 +00:00
parent fef9f55c2b
commit 6f3ec223dc
1 changed files with 130 additions and 24 deletions

View File

@ -64,7 +64,7 @@ _fi__(0)
This file documents the GNU debugger _GDBN__.
@c !!set edition, date, version
This is Edition 4.04, March 1992,
This is Edition 4.05, June 1992,
of @cite{Using GDB: A Guide to the GNU Source-Level Debugger}
for GDB Version _GDB_VN__.
@ -103,8 +103,8 @@ _if__(!_GENERIC__)
_fi__(!_GENERIC__)
@sp 1
@c !!set edition, date, version
@subtitle Edition 4.04, for _GDBN__ version _GDB_VN__
@subtitle March 1992
@subtitle Edition 4.05, for _GDBN__ version _GDB_VN__
@subtitle June 1992
@author by Richard M. Stallman and Roland H. Pesch
@page
@tex
@ -144,7 +144,7 @@ instead of in the original English.
This file describes _GDBN__, the GNU symbolic debugger.
@c !!set edition, date, version
This is Edition 4.04, March 1992, for GDB Version _GDB_VN__.
This is Edition 4.05, June 1992, for GDB Version _GDB_VN__.
@end ifinfo
@menu
@ -194,6 +194,7 @@ Starting _GDBN__
_GDBN__ Commands
* Command Syntax:: Command Syntax
* Completion:: Command Completion
* Help:: Getting Help
Running Programs Under _GDBN__
@ -439,11 +440,11 @@ omitted from this list, we would like to add your names!
So that they may not regard their long labor as thankless, we
particularly thank those who shepherded GDB through major releases: Stu
Grossman and John Gilmore (releases 4.5, 4.4), John Gilmore (releases 4.3, 4.2,
4.1, 4.0, and 3.9); Jim Kingdon (releases 3.5, 3.4, 3.3); and Randy
Smith (releases 3.2, 3.1, 3.0). As major maintainer of GDB for some
period, each contributed significantly to the structure, stability, and
capabilities of the entire debugger.
Grossman and John Gilmore (releases 4.6, 4.5, 4.4), John Gilmore
(releases 4.3, 4.2, 4.1, 4.0, and 3.9); Jim Kingdon (releases 3.5, 3.4,
3.3); and Randy Smith (releases 3.2, 3.1, 3.0). As major maintainer of
GDB for some period, each contributed significantly to the structure,
stability, and capabilities of the entire debugger.
Richard Stallman, assisted at various times by Pete TerMaat, Chris
Hanson, and Richard Mlynarik, handled releases through 2.8.
@ -491,7 +492,8 @@ Andrew Beers of SUNY Buffalo wrote the language-switching code and
the Modula-2 support, and contributed the Languages chapter of this
manual.
Fred Fish wrote most of the support for Unix System Vr4.
Fred Fish wrote most of the support for Unix System Vr4, and enhanced
the command-completion support to cover C++ overloaded symbols.
@node New Features, Sample Session, Summary, Top
@unnumbered New Features since GDB version 3.5
@ -570,8 +572,8 @@ GDB 4 can debug programs and core files that use SunOS, SVR4, or IBM RS/6000
shared libraries.
@item Reference Card
GDB 4 has a reference card. @xref{Formatting Documentation} for
instructions on printing it.
GDB 4 has a reference card. @xref{Formatting Documentation,,Formatting
the Documentation}, for instructions to print it.
@item Work in Progress
Kernel debugging for BSD and Mach systems; Tahoe and HPPA architecture
@ -1148,15 +1150,19 @@ arguments. This is equivalent to @samp{shell make @var{make-args}}.
@node Commands, Running, Invocation, Top
@chapter _GDBN__ Commands
You can abbreviate GDB command if that abbreviation is unambiguous;
and you can repeat certain GDB commands by typing just @key{RET}.
You can abbreviate a _GDBN__ 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 @key{RET}. You can also use the @key{TAB}
key to get _GDBN__ to fill out the rest of a word in a command (or to
show you the alternatives available, if there's more than one possibility).
@menu
* Command Syntax:: Command Syntax
* Completion:: Command Completion
* Help:: Getting Help
@end menu
@node Command Syntax, Help, Commands, Commands
@node Command Syntax, Completion, Commands, Commands
@section Command Syntax
A _GDBN__ command is a single line of input. There is no limit on how long
@ -1198,7 +1204,95 @@ that generates this sort of display.
A line of input starting with @kbd{#} is a comment; it does nothing.
This is useful mainly in command files (@pxref{Command Files}).
@node Help, , Command Syntax, Commands
@node Completion, Help, Command Syntax, Commands
@section Command Completion
@cindex completion
@cindex word completion
_GDBN__ can fill in the rest of a word in a command for you, if there's
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 _GDBN__
commands, _GDBN__ subcommands, and the names of symbols in your program.
Press the @key{TAB} key whenever you want _GDBN__ to fill out the rest
of a word. If there's only one possibility, _GDBN__ will fill in the
word, and wait for you to finish the command (or press @key{RET} to
enter it). For example, if you type
@example
(_GDBP__) info bre@key{TAB}
@end example
@noindent
_GDBN__ fills in the rest of the word @samp{breakpoints}, since that's
the only @code{info} subcommand beginning with @samp{bre}:
@example
(_GDBP__) info breakpoints
@end example
@noindent
You can either press @key{RET} at this point, to run the @code{info
breakpoints} command, or backspace and enter something else, if
@samp{breakpoints} doesn't look like the command you expected. (If you
were sure you wanted @code{info breakpoints} in the first place, you
might as well just type @key{RET} immediately after @samp{info bre},
to exploit command abbreviations rather than command completion).
If there is more than one possibility for the next word when you press
@key{TAB}, _GDBN__ will sound a bell. You can either supply more
characters and try again, or just press @key{TAB} a second time, and
_GDBN__ will display all the possible completions for that word. For
example, you might want to set a breakpoint on a subroutine whose name
begins with @samp{mak}, but when you type @kbd{b mak@key{TAB}} _GDBN__
just sounds the bell. Typing @key{TAB} again will display all the
function names in your program that begin with those characters, for
example:
@example
(_GDBP__) b mak@key{TAB}
make_a_section_from_file make_environ
make_abs_section make_function_type
make_blockvector make_pointer_type
make_cleanup make_reference_type
make_command make_symbol_completion_list
(GDBP__) b mak
@end example
@noindent
After displaying the available possibilities, _GDBN__ copies your
partial input (@samp{b mak} in the example) so you can finish the
command.
If you just want to see the list of alternatives in the first place, you
can press @kbd{M-?} rather than pressing @key{TAB} twice. (@kbd{M-?}
means @kbd{@key{META} ?}. If your keyboard doesn't have a Meta shift,
you can type @key{ESC} followed by @kbd{?} instead.)
@cindex quotes in commands
@cindex completion of quoted strings
Sometimes the string you need, while logically a ``word'', may contain
parentheses or other characters that _GDBN__ normally excludes from its
notion of a word. To permit word completion to work in this situation,
you may enclose words in @code{'} (single quote marks) in _GDBN__ commands.
The most likely situation where you might need this is in typing the
name of a C++ function. This is because C++ allows function overloading
(multiple definitions of the same function, distinguished by argument
type). For example, you may need to distinguish whether you mean
@samp{name(int)} or @samp{name(float)} when you want to set a
breakpoint. To use the word-completion facilities in this situation,
type a single quote @code{'} at the beginning of the function name.
This alerts _GDBN__ that it may need to consider more information than
usual when you press @key{TAB} or @kbd{M-?} to request word completion:
@example
(_GDBP__) b 'name(@key{M-?}
name(int) name(float)
(_GDBP__) b 'name
@end example
@node Help, , Completion, Commands
@section Getting Help
@cindex online documentation
@kindex help
@ -2460,18 +2554,22 @@ operators @samp{&&}, @samp{||} and @samp{?@dots{}:} may be useful.
Some programming languages (notably C++) permit a single function name
to be defined several times, for application in different contexts.
This is called @dfn{overloading}. When a function name is overloaded,
@samp{break @var{function}} is not enough to tell _GDBN__ where you
want a breakpoint. _GDBN__ offers you a menu of numbered choices for
different possible breakpoints, and waits for your selection with the
prompt @samp{>}. The first two options are always @samp{[0] cancel}
and @samp{[1] all}. Typing @kbd{1} sets a breakpoint at each
definition of @var{function}, and typing @kbd{0} aborts the
@code{break} command without setting any new breakpoints.
@samp{break @var{function}} is not enough to tell _GDBN__ where you want
a breakpoint. If you realize this will be a problem, you can use
something like @samp{break @var{function}(@var{types})} to specify which
particular version of the function you want. Otherwise, _GDBN__ offers
you a menu of numbered choices for different possible breakpoints, and
waits for your selection with the prompt @samp{>}. The first two
options are always @samp{[0] cancel} and @samp{[1] all}. Typing @kbd{1}
sets a breakpoint at each definition of @var{function}, and typing
@kbd{0} aborts the @code{break} command without setting any new
breakpoints.
For example, the following session excerpt shows an attempt to set a
breakpoint at the overloaded symbol @code{String::after}.
We choose three particular definitions of that function name:
@c FIXME! This is likely to change to show arg type lists, at least
@example
(_GDBP__) b String::after
[0] cancel
@ -5009,7 +5107,7 @@ The @code{@@} operator aids in the debugging of dynamic arrays, formed
with pointers and a memory allocation function. (@pxref{Expressions, ,Expressions})
@node Debugging C plus plus, , Debugging C, C
@subsubsection _GDBN__ Commands for C++
@subsubsection _GDBN__ Features for C++
@cindex commands for C++
Some _GDBN__ commands are particularly useful with C++, and some are
@ -5059,6 +5157,14 @@ Choose whether to print derived (actual) or declared types of objects.
@itemx show print vtbl
Control the format for printing virtual function tables.
@xref{Print Settings, ,Print Settings}.
@item @r{Overloaded symbol names}
You can specify a particular definition of an overloaded symbol, using
the same notation that's used to declare such symbols in C++: type
@code{@var{symbol}(@var{types})} rather than just @var{symbol}. You can
also use _GDBN__'s command-line word completion facilities to list the
available choices, or to finish the type list for you.
@xref{Completion,, Command Completion}, for details on how to do this.
@end table
@node Modula-2, , C, Support