comparison man/lispref/edebug-inc.texi @ 444:576fb035e263 r21-2-37

Import from CVS: tag r21-2-37
author cvs
date Mon, 13 Aug 2007 11:36:19 +0200
parents 3ecd8885ac67
children 755ae5b97edb
comparison
equal deleted inserted replaced
443:a8296e22da4e 444:576fb035e263
20 Trace slow or fast stopping briefly at each stop point, or 20 Trace slow or fast stopping briefly at each stop point, or
21 each breakpoint. 21 each breakpoint.
22 22
23 @item 23 @item
24 Display expression results and evaluate expressions as if outside of 24 Display expression results and evaluate expressions as if outside of
25 Edebug. Interface with the custom printing package 25 Edebug. Interface with the custom printing package
26 for printing circular structures. 26 for printing circular structures.
27 27
28 @item 28 @item
29 Automatically reevaluate a list of expressions and 29 Automatically reevaluate a list of expressions and
30 display their results each time Edebug updates the display. 30 display their results each time Edebug updates the display.
31 31
32 @item 32 @item
33 Output trace info on function enter and exit. 33 Output trace info on function enter and exit.
106 @end example 106 @end example
107 107
108 @cindex stop points 108 @cindex stop points
109 The places within a function where Edebug can stop execution are called 109 The places within a function where Edebug can stop execution are called
110 @dfn{stop points}. These occur both before and after each subexpression 110 @dfn{stop points}. These occur both before and after each subexpression
111 that is a list, and also after each variable reference. 111 that is a list, and also after each variable reference.
112 Here we show with periods the stop points found in the function 112 Here we show with periods the stop points found in the function
113 @code{fac}: 113 @code{fac}:
114 114
115 @example 115 @example
116 (defun fac (n) 116 (defun fac (n)
132 (* n (fac (1- n))) 132 (* n (fac (1- n)))
133 1)) 133 1))
134 @end example 134 @end example
135 135
136 When Edebug stops execution after an expression, it displays the 136 When Edebug stops execution after an expression, it displays the
137 expression's value in the echo area. 137 expression's value in the echo area.
138 138
139 Other frequently used commands are @kbd{b} to set a breakpoint at a stop 139 Other frequently used commands are @kbd{b} to set a breakpoint at a stop
140 point, @kbd{g} to execute until a breakpoint is reached, and @kbd{q} to 140 point, @kbd{g} to execute until a breakpoint is reached, and @kbd{q} to
141 exit to the top-level command loop. Type @kbd{?} to display a list of 141 exit to the top-level command loop. Type @kbd{?} to display a list of
142 all Edebug commands. 142 all Edebug commands.
188 @file{my-specs.el} may be loaded automatically when you use 188 @file{my-specs.el} may be loaded automatically when you use
189 @code{my-package} with Edebug by including the following code in 189 @code{my-package} with Edebug by including the following code in
190 @file{my-package.el}. 190 @file{my-package.el}.
191 191
192 @example 192 @example
193 (add-hook 'edebug-setup-hook 193 (add-hook 'edebug-setup-hook
194 (function (lambda () (require 'my-specs)))) 194 (function (lambda () (require 'my-specs))))
195 @end example 195 @end example
196 196
197 While Edebug is active, the command @kbd{I} 197 While Edebug is active, the command @kbd{I}
198 (@code{edebug-instrument-callee}) instruments the definition of the 198 (@code{edebug-instrument-callee}) instruments the definition of the
286 program more slowly or stop sooner. 286 program more slowly or stop sooner.
287 287
288 When you enter a new Edebug level, the initial execution mode comes from 288 When you enter a new Edebug level, the initial execution mode comes from
289 the value of the variable @code{edebug-initial-mode}. By default, this 289 the value of the variable @code{edebug-initial-mode}. By default, this
290 specifies @code{step} mode. Note that you may reenter the same Edebug 290 specifies @code{step} mode. Note that you may reenter the same Edebug
291 level several times if, for example, an instrumented function is called 291 level several times if, for example, an instrumented function is called
292 several times from one command. 292 several times from one command.
293 293
294 While executing or tracing, you can interrupt the execution by typing 294 While executing or tracing, you can interrupt the execution by typing
295 any Edebug command. Edebug stops the program at the next stop point and 295 any Edebug command. Edebug stops the program at the next stop point and
296 then executes the command that you typed. For example, typing @kbd{t} 296 then executes the command that you typed. For example, typing @kbd{t}
340 stop point. If you want to execute one expression from the current stop 340 stop point. If you want to execute one expression from the current stop
341 point, type @kbd{w} first, to move point there. 341 point, type @kbd{w} first, to move point there.
342 342
343 @item o 343 @item o
344 Continue ``out of'' an expression (@code{edebug-step-out}). It places a 344 Continue ``out of'' an expression (@code{edebug-step-out}). It places a
345 temporary breakpoint at the end of the sexp containing point. 345 temporary breakpoint at the end of the sexp containing point.
346 346
347 If the containing sexp is a function definition itself, it continues 347 If the containing sexp is a function definition itself, it continues
348 until just before the last sexp in the definition. If that is where you 348 until just before the last sexp in the definition. If that is where you
349 are now, it returns from the function and then stops. In other words, 349 are now, it returns from the function and then stops. In other words,
350 this command does not exit the currently executing function unless you 350 this command does not exit the currently executing function unless you
408 @end table 408 @end table
409 409
410 From the Edebug recursive edit, you may invoke commands that activate 410 From the Edebug recursive edit, you may invoke commands that activate
411 Edebug again recursively. Any time Edebug is active, you can quit to 411 Edebug again recursively. Any time Edebug is active, you can quit to
412 the top level with @kbd{q} or abort one recursive edit level with 412 the top level with @kbd{q} or abort one recursive edit level with
413 @kbd{C-]}. You can display a backtrace of all the 413 @kbd{C-]}. You can display a backtrace of all the
414 pending evaluations with @kbd{d}. 414 pending evaluations with @kbd{d}.
415 415
416 416
417 @node Breakpoints 417 @node Breakpoints
418 @subsection Breakpoints 418 @subsection Breakpoints
477 moves point to the next breakpoint in the definition following point, or 477 moves point to the next breakpoint in the definition following point, or
478 to the first breakpoint if there are no following breakpoints. This 478 to the first breakpoint if there are no following breakpoints. This
479 command does not continue execution---it just moves point in the buffer. 479 command does not continue execution---it just moves point in the buffer.
480 480
481 @menu 481 @menu
482 * Global Break Condition:: Breaking on an event. 482 * Global Break Condition:: Breaking on an event.
483 * Embedded Breakpoints:: Embedding breakpoints in code. 483 * Embedded Breakpoints:: Embedding breakpoints in code.
484 @end menu 484 @end menu
485 485
486 486
487 @node Global Break Condition 487 @node Global Break Condition
493 you can also cause a break when a certain event occurs. The @dfn{global 493 you can also cause a break when a certain event occurs. The @dfn{global
494 break condition} is a condition that is repeatedly evaluated at every 494 break condition} is a condition that is repeatedly evaluated at every
495 stop point. If it evaluates to a non-@code{nil} value, then execution 495 stop point. If it evaluates to a non-@code{nil} value, then execution
496 is stopped or paused depending on the execution mode, just like a 496 is stopped or paused depending on the execution mode, just like a
497 breakpoint. Any errors that might occur as a result of evaluating the 497 breakpoint. Any errors that might occur as a result of evaluating the
498 condition are ignored, as if the result were @code{nil}. 498 condition are ignored, as if the result were @code{nil}.
499 499
500 @findex edebug-set-global-break-condition 500 @findex edebug-set-global-break-condition
501 @vindex edebug-global-break-condition 501 @vindex edebug-global-break-condition
502 You can set or edit the condition expression, stored in 502 You can set or edit the condition expression, stored in
503 @code{edebug-global-break-condition}, using @kbd{X} 503 @code{edebug-global-break-condition}, using @kbd{X}
829 produce a traditional trace listing of execution in a separate buffer, 829 produce a traditional trace listing of execution in a separate buffer,
830 @samp{*edebug-trace*}. 830 @samp{*edebug-trace*}.
831 831
832 @findex edebug-print-trace-before 832 @findex edebug-print-trace-before
833 @findex edebug-print-trace-after 833 @findex edebug-print-trace-after
834 If the variable @code{edebug-trace} is non-nil, each function entry and 834 If the variable @code{edebug-trace} is non-@code{nil}, each function entry and
835 exit adds lines to the trace buffer. On function entry, Edebug prints 835 exit adds lines to the trace buffer. On function entry, Edebug prints
836 @samp{::::@{} followed by the function name and argument values. On 836 @samp{::::@{} followed by the function name and argument values. On
837 function exit, Edebug prints @samp{::::@}} followed by the function name 837 function exit, Edebug prints @samp{::::@}} followed by the function name
838 and result of the function. The number of @samp{:}s is computed from 838 and result of the function. The number of @samp{:}s is computed from
839 the recursion depth. The balanced braces in the trace buffer can be 839 the recursion depth. The balanced braces in the trace buffer can be
901 the breakpoint is reached, the frequency data is looks like this: 901 the breakpoint is reached, the frequency data is looks like this:
902 902
903 @example 903 @example
904 (defun fac (n) 904 (defun fac (n)
905 (if (= n 0) (edebug)) 905 (if (= n 0) (edebug))
906 ;#6 1 0 =5 906 ;#6 1 0 =5
907 (if (< 0 n) 907 (if (< 0 n)
908 ;#5 = 908 ;#5 =
909 (* n (fac (1- n))) 909 (* n (fac (1- n)))
910 ;# 5 0 910 ;# 5 0
911 1)) 911 1))
912 ;# 0 912 ;# 0
913 @end example 913 @end example
914 914
915 The comment lines show that @code{fac} has been called 6 times. The 915 The comment lines show that @code{fac} has been called 6 times. The
916 first @code{if} statement has returned 5 times with the same result each 916 first @code{if} statement has returned 5 times with the same result each
917 time, and the same is true for the condition on the second @code{if}. 917 time, and the same is true for the condition on the second @code{if}.
943 943
944 Whenever Edebug is entered just to think about whether to take some 944 Whenever Edebug is entered just to think about whether to take some
945 action, it needs to save and restore certain data. 945 action, it needs to save and restore certain data.
946 946
947 @itemize @bullet 947 @itemize @bullet
948 @item 948 @item
949 @code{max-lisp-eval-depth} and @code{max-specpdl-size} are both 949 @code{max-lisp-eval-depth} and @code{max-specpdl-size} are both
950 incremented one time to reduce Edebug's impact on the stack. 950 incremented one time to reduce Edebug's impact on the stack.
951 You could, however, still run out of stack space when using Edebug. 951 You could, however, still run out of stack space when using Edebug.
952 952
953 @item 953 @item
954 The state of keyboard macro execution is saved and restored. While 954 The state of keyboard macro execution is saved and restored. While
955 Edebug is active, @code{executing-macro} is bound to 955 Edebug is active, @code{executing-macro} is bound to
956 @code{edebug-continue-kbd-macro}. 956 @code{edebug-continue-kbd-macro}.
957 957
958 @end itemize 958 @end itemize
976 Entry to Edebug for displaying something also saves and restores the 976 Entry to Edebug for displaying something also saves and restores the
977 following data, but some of these are deliberately not restored if an 977 following data, but some of these are deliberately not restored if an
978 error or quit signal occurs. 978 error or quit signal occurs.
979 979
980 @itemize @bullet 980 @itemize @bullet
981 @item 981 @item
982 @cindex current buffer point and mark (Edebug) 982 @cindex current buffer point and mark (Edebug)
983 Which buffer is current, and where point and mark are in the current 983 Which buffer is current, and where point and mark are in the current
984 buffer are saved and restored. 984 buffer are saved and restored.
985 985
986 @item 986 @item
987 @cindex window configuration (Edebug) 987 @cindex window configuration (Edebug)
988 @findex save-excursion (Edebug) 988 @findex save-excursion (Edebug)
989 @vindex edebug-save-windows 989 @vindex edebug-save-windows
990 The Edebug Display Update, is saved and restored if 990 The Edebug Display Update, is saved and restored if
991 @code{edebug-save-windows} is non-@code{nil}. It is not restored on 991 @code{edebug-save-windows} is non-@code{nil}. It is not restored on
992 error or quit, but the outside selected window @emph{is} reselected even 992 error or quit, but the outside selected window @emph{is} reselected even
993 on error or quit in case a @code{save-excursion} is active. 993 on error or quit in case a @code{save-excursion} is active.
994 If the value of @code{edebug-save-windows} is a list, only the listed 994 If the value of @code{edebug-save-windows} is a list, only the listed
995 windows are saved and restored. 995 windows are saved and restored.
996 996
997 The window start and horizontal scrolling of the source code buffer are 997 The window start and horizontal scrolling of the source code buffer are
998 not restored, however, so that the display remains coherent. 998 not restored, however, so that the display remains coherent.
1005 @item 1005 @item
1006 The variables @code{overlay-arrow-position} and 1006 The variables @code{overlay-arrow-position} and
1007 @code{overlay-arrow-string} are saved and restored. So you can safely 1007 @code{overlay-arrow-string} are saved and restored. So you can safely
1008 invoke Edebug from the recursive edit elsewhere in the same buffer. 1008 invoke Edebug from the recursive edit elsewhere in the same buffer.
1009 1009
1010 @item 1010 @item
1011 @code{cursor-in-echo-area} is locally bound to @code{nil} so that 1011 @code{cursor-in-echo-area} is locally bound to @code{nil} so that
1012 the cursor shows up in the window. 1012 the cursor shows up in the window.
1013 1013
1014 @end itemize 1014 @end itemize
1015 1015
1053 @item 1053 @item
1054 @code{standard-output} and @code{standard-input} are bound to @code{nil} 1054 @code{standard-output} and @code{standard-input} are bound to @code{nil}
1055 by the @code{recursive-edit}, but Edebug temporarily restores them during 1055 by the @code{recursive-edit}, but Edebug temporarily restores them during
1056 evaluations. 1056 evaluations.
1057 1057
1058 @item 1058 @item
1059 The state of keyboard macro definition is saved and restored. While 1059 The state of keyboard macro definition is saved and restored. While
1060 Edebug is active, @code{defining-kbd-macro} is bound to 1060 Edebug is active, @code{defining-kbd-macro} is bound to
1061 @code{edebug-continue-kbd-macro}. 1061 @code{edebug-continue-kbd-macro}.
1062 1062
1063 @end itemize 1063 @end itemize
1072 (Evaluation may occur explicitly in the macro body, or when the 1072 (Evaluation may occur explicitly in the macro body, or when the
1073 resulting expansion is evaluated, or any time later.) You must explain 1073 resulting expansion is evaluated, or any time later.) You must explain
1074 the format of macro call arguments by using @code{def-edebug-spec} to 1074 the format of macro call arguments by using @code{def-edebug-spec} to
1075 define an @dfn{Edebug specification} for each macro. 1075 define an @dfn{Edebug specification} for each macro.
1076 1076
1077 @deffn Macro def-edebug-spec macro specification 1077 @defmac def-edebug-spec macro specification
1078 Specify which expressions of a call to macro @var{macro} are forms to be 1078 Specify which expressions of a call to macro @var{macro} are forms to be
1079 evaluated. For simple macros, the @var{specification} often looks very 1079 evaluated. For simple macros, the @var{specification} often looks very
1080 similar to the formal argument list of the macro definition, but 1080 similar to the formal argument list of the macro definition, but
1081 specifications are much more general than macro arguments. 1081 specifications are much more general than macro arguments.
1082 1082
1084 name. 1084 name.
1085 1085
1086 Unless you are using Emacs 19 or XEmacs, this macro is only defined 1086 Unless you are using Emacs 19 or XEmacs, this macro is only defined
1087 in Edebug, so you may want to use the following which is equivalent: 1087 in Edebug, so you may want to use the following which is equivalent:
1088 @code{(put '@var{macro} 'edebug-form-spec '@var{specification})} 1088 @code{(put '@var{macro} 'edebug-form-spec '@var{specification})}
1089 @end deffn 1089 @end defmac
1090 1090
1091 Here is a simple example that defines the specification for the 1091 Here is a simple example that defines the specification for the
1092 @code{for} macro described in the XEmacs Lisp Reference Manual, followed 1092 @code{for} macro described in the XEmacs Lisp Reference Manual, followed
1093 by an alternative, equivalent specification. 1093 by an alternative, equivalent specification.
1094 1094
1192 An unquoted anonymous lambda expression. 1192 An unquoted anonymous lambda expression.
1193 1193
1194 @item &optional 1194 @item &optional
1195 @cindex &optional (Edebug) 1195 @cindex &optional (Edebug)
1196 All following elements in the specification list are optional; as soon 1196 All following elements in the specification list are optional; as soon
1197 as one does not match, Edebug stops matching at this level. 1197 as one does not match, Edebug stops matching at this level.
1198 1198
1199 To make just a few elements optional followed by non-optional elements, 1199 To make just a few elements optional followed by non-optional elements,
1200 use @code{[&optional @var{specs}@dots{}]}. To specify that several 1200 use @code{[&optional @var{specs}@dots{}]}. To specify that several
1201 elements should all succeed together, use @code{&optional 1201 elements should all succeed together, use @code{&optional
1202 [@var{specs}@dots{}]}. See the @code{defun} example below. 1202 [@var{specs}@dots{}]}. See the @code{defun} example below.
1227 Each of the following elements is matched as alternatives as if by using 1227 Each of the following elements is matched as alternatives as if by using
1228 @code{&or}, but if any of them match, the specification fails. If none 1228 @code{&or}, but if any of them match, the specification fails. If none
1229 of them match, nothing is matched, but the @code{&not} specification 1229 of them match, nothing is matched, but the @code{&not} specification
1230 succeeds. 1230 succeeds.
1231 1231
1232 @item &define 1232 @item &define
1233 @cindex &define (Edebug) 1233 @cindex &define (Edebug)
1234 Indicates that the specification is for a defining form. The defining 1234 Indicates that the specification is for a defining form. The defining
1235 form itself is not instrumented (i.e. Edebug does not stop before and 1235 form itself is not instrumented (i.e. Edebug does not stop before and
1236 after the defining form), but forms inside it typically will be 1236 after the defining form), but forms inside it typically will be
1237 instrumented. The @code{&define} keyword should be the first element in 1237 instrumented. The @code{&define} keyword should be the first element in
1241 described here. See the @code{defun} example below. 1241 described here. See the @code{defun} example below.
1242 1242
1243 @table @code 1243 @table @code
1244 1244
1245 @item name 1245 @item name
1246 The argument, a symbol, is the name of the defining form. 1246 The argument, a symbol, is the name of the defining form.
1247 But a defining form need not be named at all, in which 1247 But a defining form need not be named at all, in which
1248 case a unique name will be created for it. 1248 case a unique name will be created for it.
1249 1249
1250 The @code{name} specification may be used more than once in the 1250 The @code{name} specification may be used more than once in the
1251 specification and each subsequent use will append the corresponding 1251 specification and each subsequent use will append the corresponding
1440 arguments bound to instrumented forms, then you should modify the 1440 arguments bound to instrumented forms, then you should modify the
1441 specification for the macro as follows: the specifications for those 1441 specification for the macro as follows: the specifications for those
1442 arguments must use @code{def-form} instead of @code{form}. (This is to 1442 arguments must use @code{def-form} instead of @code{form}. (This is to
1443 reestablish the Edebugging context for those external forms.) 1443 reestablish the Edebugging context for those external forms.)
1444 1444
1445 For example, the @code{for} macro 1445 For example, the @code{for} macro
1446 @c (@pxref{Problems with Macros}) @c in XEmacs Lisp Reference Manual 1446 @c (@pxref{Problems with Macros}) @c in XEmacs Lisp Reference Manual
1447 (@pxref{Problems with Macros,,,, XEmacs Lisp Reference Manual}) @c Edebug Doc 1447 (@pxref{Problems with Macros,,,, XEmacs Lisp Reference Manual}) @c Edebug Doc
1448 is shown here but with @code{edebug-`} 1448 is shown here but with @code{edebug-`}
1449 substituted for regular @code{`}. 1449 substituted for regular @code{`}.
1450 1450
1515 interactive form specially since it is actually evaluated outside of the 1515 interactive form specially since it is actually evaluated outside of the
1516 function body. 1516 function body.
1517 1517
1518 @example 1518 @example
1519 (def-edebug-spec defmacro defun) ; @r{Indirect ref to @code{defun} spec} 1519 (def-edebug-spec defmacro defun) ; @r{Indirect ref to @code{defun} spec}
1520 (def-edebug-spec defun 1520 (def-edebug-spec defun
1521 (&define name lambda-list 1521 (&define name lambda-list
1522 [&optional stringp] ; @r{Match the doc string, if present.} 1522 [&optional stringp] ; @r{Match the doc string, if present.}
1523 [&optional ("interactive" interactive)] 1523 [&optional ("interactive" interactive)]
1524 def-body)) 1524 def-body))
1525 1525
1526 (def-edebug-spec lambda-list 1526 (def-edebug-spec lambda-list
1592 calls. It takes some time to do this, so if your program does not care 1592 calls. It takes some time to do this, so if your program does not care
1593 what happens to data about windows, you may want to set this variable to 1593 what happens to data about windows, you may want to set this variable to
1594 @code{nil}. 1594 @code{nil}.
1595 1595
1596 If the value is a list, only the listed windows are saved and 1596 If the value is a list, only the listed windows are saved and
1597 restored. 1597 restored.
1598 1598
1599 @kbd{M-x edebug-toggle-save-windows} may be used to change this variable. 1599 @kbd{M-x edebug-toggle-save-windows} may be used to change this variable.
1600 This command is bound to @kbd{W} in source code buffers. 1600 This command is bound to @kbd{W} in source code buffers.
1601 See @ref{Edebug Display Update}. 1601 See @ref{Edebug Display Update}.
1602 @end defopt 1602 @end defopt
1619 If this variable is non-@code{nil}, it specifies the initial execution 1619 If this variable is non-@code{nil}, it specifies the initial execution
1620 mode for Edebug when it is first activated. Possible values are 1620 mode for Edebug when it is first activated. Possible values are
1621 @code{step}, @code{next}, @code{go}, @code{Go-nonstop}, @code{trace}, 1621 @code{step}, @code{next}, @code{go}, @code{Go-nonstop}, @code{trace},
1622 @code{Trace-fast}, @code{continue}, and @code{Continue-fast}. 1622 @code{Trace-fast}, @code{continue}, and @code{Continue-fast}.
1623 1623
1624 The default value is @code{step}. 1624 The default value is @code{step}.
1625 See @ref{Edebug Execution Modes}. 1625 See @ref{Edebug Execution Modes}.
1626 @end defopt 1626 @end defopt
1627 1627
1628 @defopt edebug-trace 1628 @defopt edebug-trace
1629 @findex edebug-print-trace-before 1629 @findex edebug-print-trace-before
1630 @findex edebug-print-trace-after 1630 @findex edebug-print-trace-after
1631 Non-@code{nil} means display a trace of function entry and exit. 1631 Non-@code{nil} means display a trace of function entry and exit.
1632 Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one 1632 Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one
1633 function entry or exit per line, indented by the recursion level. 1633 function entry or exit per line, indented by the recursion level.
1634 1634
1635 The default value is @code{nil}. 1635 The default value is @code{nil}.
1636 1636
1637 Also see @code{edebug-tracing}. 1637 Also see @code{edebug-tracing}.
1638 See @ref{Tracing}. 1638 See @ref{Tracing}.
1639 @end defopt 1639 @end defopt
1640 1640
1641 @defopt edebug-test-coverage 1641 @defopt edebug-test-coverage
1642 If non-@code{nil}, Edebug tests coverage of all expressions debugged. 1642 If non-@code{nil}, Edebug tests coverage of all expressions debugged.
1643 This is done by comparing the result of each expression 1643 This is done by comparing the result of each expression
1644 with the previous result. Coverage is considered OK if two different 1644 with the previous result. Coverage is considered OK if two different
1645 results are found. So to sufficiently test the coverage of your code, 1645 results are found. So to sufficiently test the coverage of your code,
1646 try to execute it under conditions that evaluate all expressions more 1646 try to execute it under conditions that evaluate all expressions more
1649 Use @kbd{M-x edebug-display-freq-count} to display the frequency count 1649 Use @kbd{M-x edebug-display-freq-count} to display the frequency count
1650 and coverage information for a definition. 1650 and coverage information for a definition.
1651 See @ref{Coverage Testing}. 1651 See @ref{Coverage Testing}.
1652 @end defopt 1652 @end defopt
1653 1653
1654 @defopt edebug-continue-kbd-macro 1654 @defopt edebug-continue-kbd-macro
1655 If non-@code{nil}, continue defining or executing any keyboard macro 1655 If non-@code{nil}, continue defining or executing any keyboard macro
1656 that is executing outside of Edebug. Use this with caution since it is not 1656 that is executing outside of Edebug. Use this with caution since it is not
1657 debugged. 1657 debugged.
1658 See @ref{Edebug Execution Modes}. 1658 See @ref{Edebug Execution Modes}.
1659 @end defopt 1659 @end defopt
1662 If non-@code{nil}, bind @code{print-length} to this while printing 1662 If non-@code{nil}, bind @code{print-length} to this while printing
1663 results in Edebug. The default value is @code{50}. 1663 results in Edebug. The default value is @code{50}.
1664 See @ref{Printing in Edebug}. 1664 See @ref{Printing in Edebug}.
1665 @end defopt 1665 @end defopt
1666 1666
1667 @defopt edebug-print-level 1667 @defopt edebug-print-level
1668 If non-@code{nil}, bind @code{print-level} to this while printing 1668 If non-@code{nil}, bind @code{print-level} to this while printing
1669 results in Edebug. The default value is @code{50}. 1669 results in Edebug. The default value is @code{50}.
1670 @end defopt 1670 @end defopt
1671 1671
1672 @defopt edebug-print-circle 1672 @defopt edebug-print-circle
1673 If non-@code{nil}, bind @code{print-circle} to this while printing 1673 If non-@code{nil}, bind @code{print-circle} to this while printing
1674 results in Edebug. The default value is @code{nil}. 1674 results in Edebug. The default value is @code{nil}.
1675 @end defopt 1675 @end defopt
1676 1676
1677 @defopt edebug-on-error 1677 @defopt edebug-on-error
1692 See @ref{Debugging Backquote}. 1692 See @ref{Debugging Backquote}.
1693 @end defopt 1693 @end defopt
1694 1694
1695 @defopt edebug-global-break-condition 1695 @defopt edebug-global-break-condition
1696 If non-@code{nil}, an expression to test for at every stop point. 1696 If non-@code{nil}, an expression to test for at every stop point.
1697 If the result is non-nil, then break. Errors are ignored. 1697 If the result is non-@code{nil}, then break. Errors are ignored.
1698 See @ref{Global Break Condition}. 1698 See @ref{Global Break Condition}.
1699 @end defopt 1699 @end defopt