backquote or ``grave accent,'' not the single-quote. This command is
available in all buffers, not just in @samp{*compilation*}; it
displays the next error message at the top of one window and source
-location of the error in another window. It also momentarily
-highlights the relevant source line. You can change the behavior of
-this highlighting with the variable @code{next-error-highlight}.
+location of the error in another window. It also temporarily
+highlights the relevant source line, for a period controlled by the
+variable @code{next-error-highlight}.
The first time @w{@kbd{C-x `}} is used after the start of a compilation,
it moves to the first error's location. Subsequent uses of @kbd{C-x
@section Searching with Grep under Emacs
Just as you can run a compiler from Emacs and then visit the lines
-with compilation errors, you can also run @code{grep} and
-then visit the lines on which matches were found. This works by
-treating the matches reported by @code{grep} as if they were ``errors.''
+with compilation errors, you can also run @code{grep} and then visit
+the lines on which matches were found. This works by treating the
+matches reported by @code{grep} as if they were ``errors.'' The
+buffer of matches uses Grep mode, which is a variant of Compilation
+mode (@pxref{Compilation Mode}).
@table @kbd
@item M-x grep
@subsection Debugger Operation
@cindex fringes, and current execution line in GUD
- When you run a debugger with GUD using the textual interface, the
-debugger uses an Emacs buffer for its ordinary input and output. This
-is called the GUD buffer. Input and output from the program you are
-debugging also use this buffer.
+ Generally when you run a debugger with GUD, the debugger uses an Emacs
+buffer for its ordinary input and output. This is called the GUD
+buffer. Input and output from the program you are debugging also use
+this buffer. We call this @dfn{text command mode}. The GDB Graphical
+Interface can use further buffers (@pxref{GDB Graphical Interface}).
The debugger displays the source files of the program by visiting
them in Emacs buffers. An arrow in the left fringe indicates the
The Tooltip facility (@pxref{Tooltips}) provides support for GUD@.
You activate this feature by turning on the minor mode
@code{gud-tooltip-mode}. Then you can display a variable's value in a
-tooltip simply by pointing at it with the mouse. In graphical mode,
-with a C program, you can also display the @code{#define} directive
-associated with an identifier when the program is not executing. This
-operates in the GUD buffer and in source buffers with major modes in
-the list @code{gud-tooltip-modes}. If the variable
-@code{gud-tooltip-echo-area} is non-@code{nil} then the variable's
-value is displayed in the echo area.
+tooltip simply by pointing at it with the mouse. This operates in the
+GUD buffer and in source buffers with major modes in the list
+@code{gud-tooltip-modes}. If the variable @code{gud-tooltip-echo-area}
+is non-@code{nil} then the variable's value is displayed in the echo
+area. When debugging a C program using the GDB Graphical Interface, you
+can also display macro definitions associated with an identifier when
+the program is not executing.
GUD tooltips are disabled when you use GDB in text command mode
(@pxref{GDB Graphical Interface}), because displaying an expression's
@vindex gud-gdb-command-name
@findex gdba
You can also run GDB in text command mode, like other debuggers. To
-do this, set @code{gud-gdb-command-name} to @code{"gdb --fullname"} or
-edit the startup command in the minibuffer to say that. You need to
-do use text command mode to run multiple debugging sessions within one
-Emacs session. If you have customized @code{gud-gdb-command-name} in
-that way, you can use @kbd{M-x gdba} to invoke GDB in graphical mode.
+do this, replace the GDB @code{"--annotate=3"} option with
+@code{"--fullname"} either in the minibuffer for the current Emacs
+session, or the custom variable @code{gud-gdb-command-name} for all
+future sessions. You need to use text command mode to debug multiple
+programs within one Emacs session. If you have customized
+@code{gud-gdb-command-name} in this way, you can use @kbd{M-x gdba} to
+invoke GDB in graphical mode.
@menu
* GDB-UI Layout:: Control the number of displayed buffers.
@node Breakpoints Buffer
@subsubsection Breakpoints Buffer
- The breakpoints buffer shows the existing breakpoints and
-watchpoints (@pxref{Breakpoints,,, gdb, The GNU debugger}). It has
+ The breakpoints buffer shows the existing breakpoints, watchpoints and
+catchpoints (@pxref{Breakpoints,,, gdb, The GNU debugger}). It has
these special commands, which mostly apply to the @dfn{current
breakpoint}, the breakpoint which point is on.
program. @xref{Backtrace,, Backtraces, gdb, The GNU debugger}.
@findex gdb-frames-select
- The selected frame number is displayed in reverse contrast. To
-select a frame in GDB, move point in the stack buffer to that stack
-frame and type @key{RET} (@code{gdb-frames-select}), or click
+An arrow in the fringe points to the selected frame or, if the fringe is
+not present, the number of the selected frame is displayed in reverse
+contrast. To select a frame in GDB, move point in the stack buffer to
+that stack frame and type @key{RET} (@code{gdb-frames-select}), or click
@kbd{Mouse-2} on a stack frame. If the locals buffer is visible,
-selecting a stack frame updates it to display the local variables of
-the new frame.
+selecting a stack frame updates it to display the local variables of the
+new frame.
@node Other GDB-UI Buffers
@subsubsection Other Buffers
the program being debugged takes its input and displays its output
here. Otherwise it uses the GUD buffer for that. To toggle whether
GUD mode uses this buffer, do @kbd{M-x gdb-use-separate-io-buffer}.
-That takes effect when you next restart the program you are debugging.
+This takes effect when you next restart the program you are debugging.
The history and replay commands from Shell mode are available here,
as are the commands to send signals to the debugged program.
@item Locals Buffer
The locals buffer displays the values of local variables of the
current frame for simple data types (@pxref{Frame Info, Frame Info,
-Information on a frame, gdb, The GNU debugger}).
+Information on a frame, gdb, The GNU debugger}). Press @key{RET} or
+click @kbd{Mouse-2} on the value if you want to edit it.
Arrays and structures display their type only. With GDB 6.4 or later,
move point to their name and press @key{RET}, or alternatively click
@findex toggle-gdb-all-registers
The registers buffer displays the values held by the registers
(@pxref{Registers,,, gdb, The GNU debugger}). Press @key{RET} or
-click @kbd{Mouse-2} on a register if you want to change its value.
+click @kbd{Mouse-2} on a register if you want to edit its value.
With GDB 6.4 or later, recently changed register values display with
@code{font-lock-warning-face}. With earlier versions of GDB, you can
press @key{SPC} to toggle the display of floating point registers
in which they were defined.
To expand or contract a complex data type, click @kbd{Mouse-2}
-on the tag to the left of the expression.
+or press @key{SPC} on the tag to the left of the expression.
@kindex D @r{(GDB speedbar)}
@findex gdb-var-delete