diff options
| author | Daniel LaLiberte | 1994-04-08 21:39:52 +0000 |
|---|---|---|
| committer | Daniel LaLiberte | 1994-04-08 21:39:52 +0000 |
| commit | a50d43268a91c7900ee0040b4d2c39ffa70f1b6a (patch) | |
| tree | 5307698e75f07d477c945f7645b099e35a2a1b0e | |
| parent | a3a28eac44e31e59ef752a5fbd325f11b1203454 (diff) | |
| download | emacs-a50d43268a91c7900ee0040b4d2c39ffa70f1b6a.tar.gz emacs-a50d43268a91c7900ee0040b4d2c39ffa70f1b6a.zip | |
checked in with -k by liberte at 1994/04/09 20:57:56
| -rw-r--r-- | lisp/emacs-lisp/edebug.el | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 58c4041d2cd..1b55e107c25 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -8,9 +8,7 @@ | |||
| 8 | ;; LCD Archive Entry: | 8 | ;; LCD Archive Entry: |
| 9 | ;; edebug|Daniel LaLiberte|liberte@cs.uiuc.edu | 9 | ;; edebug|Daniel LaLiberte|liberte@cs.uiuc.edu |
| 10 | ;; |A source level debugger for Emacs Lisp. | 10 | ;; |A source level debugger for Emacs Lisp. |
| 11 | ;; |$Date: 1994/04/05 01:21:06 $|3.5|~/modes/edebug.el| | 11 | ;; |$Date: 1994/04/05 01:21:06 $|$Revision: 3.5 $|~/modes/edebug.el| |
| 12 | |||
| 13 | ;; Version 3.5 ($Revision: 1.19 $ from Emacs 19) | ||
| 14 | 12 | ||
| 15 | ;; This file is part of GNU Emacs. | 13 | ;; This file is part of GNU Emacs. |
| 16 | 14 | ||
| @@ -82,6 +80,8 @@ | |||
| 82 | ;;; liberte@cs.uiuc.edu | 80 | ;;; liberte@cs.uiuc.edu |
| 83 | 81 | ||
| 84 | ;;; =============================== | 82 | ;;; =============================== |
| 83 | ;;; $Header: /import/kaplan/kaplan/liberte/Edebug/RCS/edebug.el,v 3.5 1994/04/08 21:39:52 liberte Exp liberte $ | ||
| 84 | ;;; $Log: edebug.el,v $ | ||
| 85 | ;;; Revision 3.5 1994/04/04 21:39:52 liberte | 85 | ;;; Revision 3.5 1994/04/04 21:39:52 liberte |
| 86 | ;;; * Change "-emacs-" to "-original-" throughout. | 86 | ;;; * Change "-emacs-" to "-original-" throughout. |
| 87 | ;;; * (edebug-last-sexp) Fix missing ";;" | 87 | ;;; * (edebug-last-sexp) Fix missing ";;" |
| @@ -107,7 +107,7 @@ | |||
| 107 | ;;; For the rest of the revision history, see edebug-history. | 107 | ;;; For the rest of the revision history, see edebug-history. |
| 108 | 108 | ||
| 109 | (defconst edebug-version | 109 | (defconst edebug-version |
| 110 | (let ((raw-version "3.5")) | 110 | (let ((raw-version "$Revision: 3.5 $")) |
| 111 | (substring raw-version (string-match "[0-9.]*" raw-version) | 111 | (substring raw-version (string-match "[0-9.]*" raw-version) |
| 112 | (match-end 0)))) | 112 | (match-end 0)))) |
| 113 | 113 | ||
| @@ -153,25 +153,24 @@ | |||
| 153 | 153 | ||
| 154 | (defvar edebug-setup-hook nil | 154 | (defvar edebug-setup-hook nil |
| 155 | "*Functions to call before edebug is used. | 155 | "*Functions to call before edebug is used. |
| 156 | Its value is reset to nil after being used, so each time it is set | 156 | Each time it is set to a new value, Edebug will call those functions |
| 157 | to a new function, that function will be called once and only once.") | 157 | once and then `edebug-setup-hook' is reset to nil. You could use this |
| 158 | to load up Edebug specifications associated with a package you are | ||
| 159 | using but only when you also use Edebug.") | ||
| 158 | 160 | ||
| 159 | (defvar edebug-all-defs nil | 161 | (defvar edebug-all-defs nil |
| 160 | "*If non-nil, evaluation of any defining forms will use Edebug. | 162 | "*If non-nil, evaluation of any defining forms will instrument for Edebug. |
| 161 | `eval-defun' without prefix arg and `eval-region' will use | 163 | This applies to `eval-defun', `eval-region', `eval-buffer', and |
| 162 | `edebug-eval-top-level-form'. | 164 | `eval-current-buffer'. `eval-region' is also called by |
| 163 | |||
| 164 | If nil, `eval-region' evaluates normally, but `eval-defun' with prefix arg | ||
| 165 | uses `edebug-eval-top-level-form'. `eval-region' is called by `eval-defun', | ||
| 166 | `eval-last-sexp', and `eval-print-last-sexp'. | 165 | `eval-last-sexp', and `eval-print-last-sexp'. |
| 167 | 166 | ||
| 168 | You can use the command `edebug-all-defs' to toggle the value of this | 167 | You can use the command `edebug-all-defs' to toggle the value of this |
| 169 | variable. You may wish to make this variable local to each | 168 | variable. You may wish to make it local to each buffer with |
| 170 | buffer with (make-local-variable 'edebug-all-defs) in your | 169 | (make-local-variable 'edebug-all-defs) in your |
| 171 | `emacs-lisp-mode-hook'.") | 170 | `emacs-lisp-mode-hook'.") |
| 172 | 171 | ||
| 173 | (defvar edebug-all-forms nil | 172 | (defvar edebug-all-forms nil |
| 174 | "*Non-nil means edebug the evaluation of all forms. | 173 | "*Non-nil evaluation of all forms will instrument for Edebug. |
| 175 | This doesn't apply to loading or evaluations in the minibuffer. | 174 | This doesn't apply to loading or evaluations in the minibuffer. |
| 176 | Use the command edebug-all-forms to toggle the value of this option.") | 175 | Use the command edebug-all-forms to toggle the value of this option.") |
| 177 | 176 | ||
| @@ -186,15 +185,15 @@ and some not, you should specify an edebug-form-spec. | |||
| 186 | This option is going away soon.") | 185 | This option is going away soon.") |
| 187 | 186 | ||
| 188 | (defvar edebug-stop-before-symbols nil | 187 | (defvar edebug-stop-before-symbols nil |
| 189 | "*Non-nil causes edebug to stop before symbols as well as after. | 188 | "*Non-nil causes Edebug to stop before symbols as well as after. |
| 190 | In any case, it is possible to stop before a symbol with a breakpoint or | 189 | In any case, a breakpoint or interrupt may stop before a symbol. |
| 191 | interrupt.") | 190 | |
| 191 | This option is going away soon.") | ||
| 192 | 192 | ||
| 193 | (defvar edebug-save-windows t | 193 | (defvar edebug-save-windows t |
| 194 | "*If non-nil, save and restore window configuration on edebug calls. | 194 | "*If non-nil, Edebug saves and restores the window configuration. |
| 195 | It takes some time to save and restore, so if your program does not care | 195 | That takes some time, so if your program does not care what happens to |
| 196 | what happens to the window configurations, it is better to set this | 196 | the window configurations, it is better to set this variable to nil. |
| 197 | variable to nil. | ||
| 198 | 197 | ||
| 199 | If the value is a list, only the listed windows are saved and | 198 | If the value is a list, only the listed windows are saved and |
| 200 | restored. | 199 | restored. |
| @@ -202,49 +201,43 @@ restored. | |||
| 202 | `edebug-toggle-save-windows' may be used to change this variable.") | 201 | `edebug-toggle-save-windows' may be used to change this variable.") |
| 203 | 202 | ||
| 204 | (defvar edebug-save-displayed-buffer-points nil | 203 | (defvar edebug-save-displayed-buffer-points nil |
| 205 | "*If non-nil, save and restore the points of all displayed buffers. | 204 | "*If non-nil, save and restore point in all displayed buffers. |
| 206 | 205 | ||
| 207 | Saving and restoring buffer points is necessary if you are debugging | 206 | Saving and restoring point in other buffers is necessary if you are |
| 208 | code that changes the point of a buffer which is displayed in a | 207 | debugging code that changes the point of a buffer which is displayed |
| 209 | non-selected window. If edebug or the user then selects the | 208 | in a non-selected window. If Edebug or the user then selects the |
| 210 | window, the buffer's point will be changed to the window's point. | 209 | window, the buffer's point will be changed to the window's point. |
| 211 | 210 | ||
| 212 | But this is an expensive operation since it visits each | 211 | Saving and restoring point in all buffers is expensive, since it |
| 213 | window and therefore each displayed buffer twice for each edebug call, | 212 | requires selecting each window twice, so enable this only if you need |
| 214 | so it is best to avoid it if you can.") | 213 | it.") |
| 215 | 214 | ||
| 216 | (defvar edebug-initial-mode 'step | 215 | (defvar edebug-initial-mode 'step |
| 217 | "*Initial execution mode for Edebug, if non-nil. | 216 | "*Initial execution mode for Edebug, if non-nil. If this variable |
| 218 | This is used when edebug is first entered for each recursive-edit | 217 | is non-@code{nil}, it specifies the initial execution mode for Edebug |
| 219 | level. Possible values are nil (which means leave | 218 | when it is first activated. Possible values are step, next, go, |
| 220 | edebug-execution-mode as is), step, (the default), next, go, | ||
| 221 | Go-nonstop, trace, Trace-fast, continue, and Continue-fast.") | 219 | Go-nonstop, trace, Trace-fast, continue, and Continue-fast.") |
| 222 | 220 | ||
| 223 | (defvar edebug-trace nil | 221 | (defvar edebug-trace nil |
| 224 | "*Non-nil if edebug should show a trace of function entry and exit. | 222 | "*Non-nil means display a trace of function entry and exit. |
| 225 | Tracing output is displayed in a buffer named by the variable | 223 | Tracing output is displayed in a buffer named `*edebug-trace*', one |
| 226 | edebug-trace-buffer, one function entry or exit per line, indented by | 224 | function entry or exit per line, indented by the recursion level. |
| 227 | the stack depth. You can customize by replacing functions | 225 | |
| 228 | edebug-print-trace-before and edebug-print-trace-after.") | 226 | You can customize by replacing functions `edebug-print-trace-before' |
| 227 | and `edebug-print-trace-after'.") | ||
| 229 | 228 | ||
| 230 | (defvar edebug-test-coverage nil | 229 | (defvar edebug-test-coverage nil |
| 231 | "*If non-nil, Edebug tests coverage of all expressions debugged. | 230 | "*If non-nil, Edebug tests coverage of all expressions debugged. |
| 232 | This is done by comparing the result of each expression | 231 | This is done by comparing the result of each expression |
| 233 | with the previous result. Coverage is considered OK if two different | 232 | with the previous result. Coverage is considered OK if two different |
| 234 | results are found. So to sufficiently test the coverage of your code, | 233 | results are found. |
| 235 | try to execute it under conditions that evaluate all expressions more | ||
| 236 | than once, and produce different results for each expression. | ||
| 237 | 234 | ||
| 238 | Use `edebug-display-freq-count' to display the frequency count and | 235 | Use `edebug-display-freq-count' to display the frequency count and |
| 239 | coverage information for a definition.") | 236 | coverage information for a definition.") |
| 240 | 237 | ||
| 241 | (defvar edebug-continue-kbd-macro nil | 238 | (defvar edebug-continue-kbd-macro nil |
| 242 | "*If non-nil, continue executing any keyboard macro that is | 239 | "*If non-nil, continue defining or executing any keyboard macro. |
| 243 | executing outside. Use this with caution since it is not debugged.") | 240 | Use this with caution since it is not debugged.") |
| 244 | |||
| 245 | (defvar edebug-global-break-condition nil | ||
| 246 | "*If non-nil, an expression to test for at every stop point. | ||
| 247 | If the result is non-nil, then break. Errors are ignored.") | ||
| 248 | 241 | ||
| 249 | 242 | ||
| 250 | (defvar edebug-print-length 50 | 243 | (defvar edebug-print-length 50 |
| @@ -274,6 +267,11 @@ After execution is resumed, the error is signaled again.") | |||
| 274 | (defvar edebug-on-quit t | 267 | (defvar edebug-on-quit t |
| 275 | "*Value bound to `debug-on-quit' while Edebug is active.") | 268 | "*Value bound to `debug-on-quit' while Edebug is active.") |
| 276 | 269 | ||
| 270 | (defvar edebug-global-break-condition nil | ||
| 271 | "*If non-nil, an expression to test for at every stop point. | ||
| 272 | If the result is non-nil, then break. Errors are ignored.") | ||
| 273 | |||
| 274 | |||
| 277 | ;;;; Form spec utilities. | 275 | ;;;; Form spec utilities. |
| 278 | ;;; =============================== | 276 | ;;; =============================== |
| 279 | 277 | ||
| @@ -328,7 +326,8 @@ except when debugging needs suggest otherwise." | |||
| 328 | newsymbol)) | 326 | newsymbol)) |
| 329 | )) | 327 | )) |
| 330 | 328 | ||
| 331 | (if (not (fboundp 'keywordp)) | 329 | ;; Only used by CL-like code. |
| 330 | '(if (not (fboundp 'keywordp)) | ||
| 332 | (defun keywordp (object) | 331 | (defun keywordp (object) |
| 333 | "Return t if OBJECT is a keyword. | 332 | "Return t if OBJECT is a keyword. |
| 334 | A keyword is a symbol that starts with "":""." | 333 | A keyword is a symbol that starts with "":""." |
| @@ -1432,7 +1431,7 @@ expressions; a `progn' form will be returned enclosing these forms." | |||
| 1432 | (cond | 1431 | (cond |
| 1433 | ;; Check for constant symbols that dont get wrapped. | 1432 | ;; Check for constant symbols that dont get wrapped. |
| 1434 | ((or (memq form '(t nil)) | 1433 | ((or (memq form '(t nil)) |
| 1435 | (keywordp form)) | 1434 | (and (fboundp 'keywordp) (keywordp form))) |
| 1436 | form) | 1435 | form) |
| 1437 | 1436 | ||
| 1438 | ;; This option may go away. | 1437 | ;; This option may go away. |
| @@ -1997,7 +1996,7 @@ expressions; a `progn' form will be returned enclosing these forms." | |||
| 1997 | edebug-spec-list | 1996 | edebug-spec-list |
| 1998 | stringp | 1997 | stringp |
| 1999 | [lambda-list-keywordp &rest edebug-spec] | 1998 | [lambda-list-keywordp &rest edebug-spec] |
| 2000 | [keywordp gate edebug-spec] | 1999 | ;; [keywordp gate edebug-spec] ;; need keywordp for this. |
| 2001 | edebug-spec-p ;; Including all the special ones e.g. form. | 2000 | edebug-spec-p ;; Including all the special ones e.g. form. |
| 2002 | symbolp;; a predicate | 2001 | symbolp;; a predicate |
| 2003 | )) | 2002 | )) |
| @@ -4500,7 +4499,7 @@ Print result in minibuffer." | |||
| 4500 | 4499 | ||
| 4501 | (byte-compile-resolve-functions | 4500 | (byte-compile-resolve-functions |
| 4502 | '(reporter-submit-bug-report | 4501 | '(reporter-submit-bug-report |
| 4503 | gensym keywordp;; cl.el | 4502 | gensym ;; also in cl.el |
| 4504 | ;; Interfaces to standard functions. | 4503 | ;; Interfaces to standard functions. |
| 4505 | edebug-original-eval-defun | 4504 | edebug-original-eval-defun |
| 4506 | edebug-original-read | 4505 | edebug-original-read |
| @@ -4562,3 +4561,4 @@ Print result in minibuffer." | |||
| 4562 | 4561 | ||
| 4563 | ;;; edebug.el ends here | 4562 | ;;; edebug.el ends here |
| 4564 | 4563 | ||
| 4564 | |||