@comment -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2005 Free Software Foundation, Inc.
+@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2001, 2002, 2003, 2004,
+@c 2005, 2006, 2007 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@c This file can also be used by an independent Edebug User
@node Edebug, Syntax Errors, Debugger, Debugging
@section Edebug
-@cindex Edebug mode
+@cindex Edebug debugging facility
-@cindex Edebug
Edebug is a source-level debugger for Emacs Lisp programs with which
you can:
of the variable @code{edebug-all-defs}.
@findex eval-region @r{(Edebug)}
+@findex eval-buffer @r{(Edebug)}
@findex eval-current-buffer @r{(Edebug)}
If @code{edebug-all-defs} is non-@code{nil}, then the commands
@code{eval-region}, @code{eval-current-buffer}, and @code{eval-buffer}
(@pxref{Jumping}), which steps into the call after instrumenting the
function.
-@cindex special forms (Edebug)
-@cindex interactive commands (Edebug)
-@cindex anonymous lambda expressions (Edebug)
-@cindex Common Lisp (Edebug)
-@pindex cl.el @r{(Edebug)}
-@pindex cl-specs.el
Edebug knows how to instrument all the standard special forms,
@code{interactive} forms with an expression argument, anonymous lambda
expressions, and other defining forms. However, Edebug cannot determine
@end menu
@node Breakpoints
-@subsubsection Breakpoints
+@subsubsection Edebug Breakpoints
-@cindex breakpoints
+@cindex breakpoints (Edebug)
While using Edebug, you can specify @dfn{breakpoints} in the program you
are testing: these are places where execution should stop. You can set a
breakpoint at any stop point, as defined in @ref{Using Edebug}. For
@node Coverage Testing
@subsection Coverage Testing
-@cindex coverage testing
+@cindex coverage testing (Edebug)
@cindex frequency counts
@cindex performance analysis
-Edebug provides rudimentary coverage testing and display of execution
+ Edebug provides rudimentary coverage testing and display of execution
frequency.
Coverage testing works by comparing the result of each expression with
@code{track-mouse}. Commands used within Edebug do not affect these
variables outside of Edebug.
-The key sequence returned by @code{this-command-keys} is changed by
-executing commands within Edebug and there is no way to reset
-the key sequence from Lisp.
+Executing commands within Edebug can change the key sequence that
+would be returned by @code{this-command-keys}, and there is no way to
+reset the key sequence from Lisp.
Edebug cannot save and restore the value of
@code{unread-command-events}. Entering Edebug while this variable has a
@end defopt
@defopt edebug-trace
-Non-@code{nil} means display a trace of function entry and exit.
+If this is non-@code{nil}, trace each function entry and exit.
Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one
function entry or exit per line, indented by the recursion level.
-The default value is @code{nil}.
-
Also see @code{edebug-tracing}, in @ref{Trace Buffer}.
@end defopt