Mercurial > hg > xemacs-beta
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{¬} specification | 1229 of them match, nothing is matched, but the @code{¬} 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 |