diff options
author | Richard M. Stallman <rms@gnu.org> | 2005-07-11 04:05:39 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2005-07-11 04:05:39 +0000 |
commit | 3cc9e6d8176a8dd38f88792dbbebd0f3570e2912 (patch) | |
tree | b8b48f5939a3e7ce1147e3816ba5b7f4018ff0b5 /lisp/emacs-lisp/edebug.el | |
parent | d2dafb85a5468d81d357f1969525d6b60581b704 (diff) | |
download | emacs-3cc9e6d8176a8dd38f88792dbbebd0f3570e2912.tar.gz emacs-3cc9e6d8176a8dd38f88792dbbebd0f3570e2912.tar.bz2 emacs-3cc9e6d8176a8dd38f88792dbbebd0f3570e2912.zip |
(edebug-slow-after, edebug-slow-before): Do nothing if edebug-active.
(edebug-enter): Don't do with-timeout-suspend here.
(edebug-display): Do it here instead.
Diffstat (limited to 'lisp/emacs-lisp/edebug.el')
-rw-r--r-- | lisp/emacs-lisp/edebug.el | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 72046399352..1a592709819 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -2244,7 +2244,6 @@ error is signaled again." (max-specpdl-size (+ 200 max-specpdl-size)) (debugger edebug-debugger) ; only while edebug is active. - (edebug-with-timeout-suspend (with-timeout-suspend)) (edebug-outside-debug-on-error debug-on-error) (edebug-outside-debug-on-quit debug-on-quit) ;; Binding these may not be the right thing to do. @@ -2290,7 +2289,6 @@ error is signaled again." (edebug-enter edebug-function edebug-args edebug-body)) ;; Reset global variables in case outside value was changed. (setq executing-kbd-macro edebug-outside-executing-macro) - (with-timeout-unsuspend edebug-with-timeout-suspend) (edebug-restore-status 'post-command-hook edebug-outside-post-command-hook) (edebug-restore-status @@ -2376,18 +2374,19 @@ MSG is printed after `::::} '." (defun edebug-slow-before (edebug-before-index) - ;; Debug current function given BEFORE position. - ;; Called from functions compiled with edebug-eval-top-level-form. - ;; Return the before index. - (setcar edebug-offset-indices edebug-before-index) - - ;; Increment frequency count - (aset edebug-freq-count edebug-before-index - (1+ (aref edebug-freq-count edebug-before-index))) - - (if (or (not (memq edebug-execution-mode '(Go-nonstop next))) - (edebug-input-pending-p)) - (edebug-debugger edebug-before-index 'before nil)) + (unless edebug-active + ;; Debug current function given BEFORE position. + ;; Called from functions compiled with edebug-eval-top-level-form. + ;; Return the before index. + (setcar edebug-offset-indices edebug-before-index) + + ;; Increment frequency count + (aset edebug-freq-count edebug-before-index + (1+ (aref edebug-freq-count edebug-before-index))) + + (if (or (not (memq edebug-execution-mode '(Go-nonstop next))) + (edebug-input-pending-p)) + (edebug-debugger edebug-before-index 'before nil))) edebug-before-index) (defun edebug-fast-before (edebug-before-index) @@ -2395,22 +2394,24 @@ MSG is printed after `::::} '." ) (defun edebug-slow-after (edebug-before-index edebug-after-index edebug-value) - ;; Debug current function given AFTER position and VALUE. - ;; Called from functions compiled with edebug-eval-top-level-form. - ;; Return VALUE. - (setcar edebug-offset-indices edebug-after-index) - - ;; Increment frequency count - (aset edebug-freq-count edebug-after-index - (1+ (aref edebug-freq-count edebug-after-index))) - (if edebug-test-coverage (edebug-update-coverage)) - - (if (and (eq edebug-execution-mode 'Go-nonstop) - (not (edebug-input-pending-p))) - ;; Just return result. + (if edebug-active edebug-value - (edebug-debugger edebug-after-index 'after edebug-value) - )) + ;; Debug current function given AFTER position and VALUE. + ;; Called from functions compiled with edebug-eval-top-level-form. + ;; Return VALUE. + (setcar edebug-offset-indices edebug-after-index) + + ;; Increment frequency count + (aset edebug-freq-count edebug-after-index + (1+ (aref edebug-freq-count edebug-after-index))) + (if edebug-test-coverage (edebug-update-coverage)) + + (if (and (eq edebug-execution-mode 'Go-nonstop) + (not (edebug-input-pending-p))) + ;; Just return result. + edebug-value + (edebug-debugger edebug-after-index 'after edebug-value) + ))) (defun edebug-fast-after (edebug-before-index edebug-after-index edebug-value) ;; Do nothing but return the value. @@ -2535,6 +2536,7 @@ MSG is printed after `::::} '." ;; Uses local variables of edebug-enter, edebug-before, edebug-after ;; and edebug-debugger. (let ((edebug-active t) ; for minor mode alist + (edebug-with-timeout-suspend (with-timeout-suspend)) edebug-stop ; should we enter recursive-edit (edebug-point (+ edebug-def-mark (aref (nth 2 edebug-data) edebug-offset-index))) @@ -2761,6 +2763,7 @@ MSG is printed after `::::} '." (set-buffer current-buffer)) ;; ... nothing more. ) + (with-timeout-unsuspend edebug-with-timeout-suspend) ;; Reset global variables to outside values in case they were changed. (setq overlay-arrow-position edebug-outside-o-a-p |