@c This is part of the Emacs manual.
-@c Copyright (C) 1985,86,87,93,94,95,97,2000,2001 Free Software Foundation, Inc.
+@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
+@c 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Building, Maintaining, Programs, Top
@chapter Compiling and Testing Programs
Run @code{grep} asynchronously under Emacs, with matching lines
listed in the buffer named @samp{*grep*}.
@item M-x grep-find
-@item M-x find-grep
+@itemx M-x find-grep
Run @code{grep} via @code{find}, with user-specified arguments, and
collect output in the buffer named @samp{*grep*}.
@item M-x kill-compilation
buffer and finds no more error messages to visit, it fails and signals
an Emacs error.
+When the left fringe is displayed, an arrow points to the
+current message in the compilation buffer. The variable
+@code{compilation-context-lines} controls the number of lines of
+leading context in the window before the current message. If it is
+@code{nil} and the left fringe is displayed, the window doesn't
+scroll. If there is no left fringe, no arrow is displayed and a value
+of @code{nil} means display the message at the top of the window.
+
You don't have to be in the compilation buffer in order to use
@code{next-error}. If one window on the selected frame can be the
target of the @code{next-error} call, it is used. Else, if a buffer
@findex grep
Just as you can run a compiler from Emacs and then visit the lines
-where there were compilation errors, you can also run @code{grep} and
+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.''
Some grep programs accept a @samp{--color} option to output special
markers around matches for the purpose of highlighting. You can make
-use of this feature by setting @code{grep-highlight-matches} to t.
-When displaying a match in the source buffer, the exact match will be
-highlighted, instead of the entire source line.
+use of this feature by setting @code{grep-highlight-matches} to
+@code{t}. When displaying a match in the source buffer, the exact
+match will be highlighted, instead of the entire source line.
@findex grep-find
@findex find-grep
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 help text is
-displayed in the echo area.
+@code{gud-tooltip-echo-area} is non-@code{nil} then the variable's
+value is displayed in the echo area.
+
+With GDB in text command mode (@pxref{GDB Graphical Interface}),
+it is possible that use of GUD tooltips can cause a function to be
+called with harmful side-effects. In this case, Emacs disables
+them.
@node Commands of GUD
@subsection Commands of GUD
also provides commands for setting and clearing breakpoints, for
selecting stack frames, and for stepping through the program. These
commands are available both in the GUD buffer and globally, but with
-different key bindings. It also has its own toolbar from which you
+different key bindings. It also has its own tool bar from which you
can invoke the more common commands by clicking on the appropriate
icon. This is particularly useful for repetitive commands like
gud-next and gud-step and allows the user to hide the GUD buffer.
(@code{gdb-mouse-set-clear-breakpoint}). Where Emacs uses the margin
to display breakpoints, it is also possible to enable or disable them
when you click @kbd{Mouse-3} there
-(@code{gdb-mouse-toggle--breakpoint}).
+(@code{gdb-mouse-toggle-breakpoint}).
@vindex gud-gdb-command-name
@findex gdba
@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 customised @code{gud-gdb-command-name} in that
+session. If you have customized @code{gud-gdb-command-name} in that
way, then you can use @kbd{M-x gdba} to invoke GDB in graphical mode.
@menu
If you want to see how a variable changes each time your program stops
then place the cursor over the variable name and click on the watch
-icon in the toolbar (@code{gud-watch}).
+icon in the tool bar (@code{gud-watch}).
Each watch expression is displayed in the speedbar. Complex data
types, such as arrays, structures and unions are represented in a tree
@item Registers Buffer
The registers buffer displays the values held by the registers
-(@pxref{Registers,,, gdb, The GNU debugger}).
+(@pxref{Registers,,, gdb, The GNU debugger}). Press @key{SPC} to
+toggle the display of floating point registers.
@item Assembler Buffer
The assembler buffer displays the current frame as machine code. An
The threads buffer displays a summary of all threads currently in your
program (@pxref{Threads,,, gdb, The GNU debugger}). Move point to
-any thread in the list and type @key{RET} to make it become the
+any thread in the list and press @key{RET} to make it become the
current thread (@code{gdb-threads-select}) and display the associated
source in the source buffer. Alternatively, click @kbd{Mouse-2} to
make the selected thread become the current one.
@kbd{C-x C-e} a second time to display the value of the integer result
in additional formats (octal, hexadecimal, and character).
- If @kbd{C-M-x}, @kbd{C-x C-e}, or @kbd{M-:} is given a numeric
-argument, it inserts the value into the current buffer at point, rather
-than displaying it in the echo area. The argument's value does not
-matter.
+ If @kbd{C-x C-e}, or @kbd{M-:} is given a numeric argument, it
+inserts the value into the current buffer at point, rather than
+displaying it in the echo area. The argument's value does not matter.
+@kbd{C-M-x} with a numeric argument instruments the function
+definition for Edebug (@pxref{Instrumenting, Instrumenting for Edebug,, elisp, the Emacs Lisp Reference Manual}).
@findex eval-region
@findex eval-current-buffer