]> git.eshelyaron.com Git - emacs.git/commitdiff
(debug-entry-code): Delete it.
authorLute Kamstra <lute@gnu.org>
Thu, 10 Mar 2005 09:43:01 +0000 (09:43 +0000)
committerLute Kamstra <lute@gnu.org>
Thu, 10 Mar 2005 09:43:01 +0000 (09:43 +0000)
(implement-debug-on-entry): New function to replace debug-entry-code.
(debug-on-entry-1): Use implement-debug-on-entry.  Delete the second
argument as the 2005-03-07 change makes it obsolete.
(debug-on-entry, cancel-debug-on-entry): Update call to
debug-on-entry-1.
(debug, debugger-setup-buffer): Comment update.
(debugger-frame-number): Update to work with implement-debug-on-entry.

lisp/ChangeLog
lisp/emacs-lisp/debug.el

index 5019b7257b70117f54fd17ca402b71c01b08e6f7..b9952c55973a23322ce5a4d7c4285f3d450cff73 100644 (file)
@@ -1,3 +1,16 @@
+2005-03-10  Lute Kamstra  <lute@gnu.org>
+
+       * emacs-lisp/debug.el (debug-entry-code): Delete it.
+       (implement-debug-on-entry): New function to replace
+       debug-entry-code.
+       (debug-on-entry-1): Use implement-debug-on-entry.  Delete the
+       second argument as the 2005-03-07 change makes it obsolete.
+       (debug-on-entry, cancel-debug-on-entry): Update call to
+       debug-on-entry-1.
+       (debug, debugger-setup-buffer): Comment update.
+       (debugger-frame-number): Update to work with
+       implement-debug-on-entry.
+
 2005-03-10  Jay Belanger  <belanger@truman.edu>
 
        * calc/calc-embed.el (math-ms-args): Declare it.
@@ -19,7 +32,7 @@
        (gdb-tooltip-print): Remove newline for tooltip-use-echo-area.
 
        * bindings.el (mode-line-mode-menu): Add tooltip-mode to mode-line.
-       
+
 2005-03-09  Kim F. Storm  <storm@cua.dk>
 
        * play/animate.el (animate-place-char): Use forward-line instead
@@ -40,7 +53,7 @@
        set-case-syntax-set-multibyte is nil.
 
        * textmodes/ispell.el (ispell-insert-word): New function.
-       (ispell-word): Use ispell-insert-word to isnert a new word.
+       (ispell-word): Use ispell-insert-word to insert a new word.
        (ispell-process-line): Likewise
        (ispell-complete-word): Likewise.
 
index fc665cb973f989b3e12fcb3633a86b5234821050..668157fc52ac29c4d7d61dd77663e0be076046ad 100644 (file)
@@ -97,14 +97,6 @@ This is to optimize `debugger-make-xrefs'.")
 This variable is used by `debugger-jump', `debugger-step-through',
 and `debugger-reenable' to temporarily disable debug-on-entry.")
 
-;; When you change this, you may also need to change the number of
-;; frames that the debugger skips.
-(defconst debug-entry-code
-  '(if (or inhibit-debug-on-entry debugger-jumping-flag)
-       nil
-     (debug 'debug))
-  "Code added to a function to cause it to call the debugger upon entry.")
-
 ;;;###autoload
 (setq debugger 'debug)
 ;;;###autoload
@@ -200,7 +192,7 @@ first will be printed into the backtrace buffer."
                  (kill-emacs))
                (if (eq (car debugger-args) 'debug)
                    ;; Skip the frames for backtrace-debug, byte-code,
-                   ;; and debug-entry-code.
+                   ;; and implement-debug-on-entry.
                    (backtrace-debug 4 t))
                (message "")
                (let ((standard-output nil)
@@ -264,7 +256,7 @@ That buffer should be current already."
                 (progn
                   (search-forward "\n  debug(")
                   (forward-line (if (eq (car debugger-args) 'debug)
-                                    2  ; Remove debug-entry-code frame.
+                                    2  ; Remove implement-debug-on-entry frame.
                                   1))
                   (point)))
   (insert "Debugger entered")
@@ -432,8 +424,8 @@ removes itself from that hook."
          (count 0))
       (while (not (eq (cadr (backtrace-frame count)) 'debug))
        (setq count (1+ count)))
-      ;; Skip debug-entry-code frame.
-      (when (member '(debug (quote debug)) (cdr (backtrace-frame (1+ count))))
+      ;; Skip implement-debug-on-entry frame.
+      (when (eq 'implement-debug-on-entry (cadr (backtrace-frame (1+ count))))
        (setq count (1+ count)))
       (goto-char (point-min))
       (when (looking-at "Debugger entered--\\(Lisp error\\|returning value\\):")
@@ -623,6 +615,16 @@ Complete list of commands:
   (use-local-map debugger-mode-map)
   (run-mode-hooks 'debugger-mode-hook))
 \f
+;; When you change this, you may also need to change the number of
+;; frames that the debugger skips.
+(defun implement-debug-on-entry ()
+  "Conditionally call the debugger.
+A call to this function is inserted by `debug-on-entry' to cause
+functions to break on entry."
+  (if (or inhibit-debug-on-entry debugger-jumping-flag)
+      nil
+    (funcall debugger 'debug)))
+
 ;;;###autoload
 (defun debug-on-entry (function)
   "Request FUNCTION to invoke debugger each time it is called.
@@ -647,7 +649,7 @@ Redefining FUNCTION also cancels it."
       (debug-convert-byte-code function))
   (or (consp (symbol-function function))
       (error "Definition of %s is not a list" function))
-  (fset function (debug-on-entry-1 function (symbol-function function) t))
+  (fset function (debug-on-entry-1 function t))
   (or (memq function debug-function-list)
       (push function debug-function-list))
   function)
@@ -664,7 +666,7 @@ If argument is nil or an empty string, cancel for all functions."
           (if name (intern name)))))
   (if (and function (not (string= function "")))
       (progn
-       (let ((f (debug-on-entry-1 function (symbol-function function) nil)))
+       (let ((f (debug-on-entry-1 function nil)))
          (condition-case nil
              (if (and (equal (nth 1 f) '(&rest debug-on-entry-args))
                       (eq (car (nth 3 f)) 'apply))
@@ -695,8 +697,9 @@ If argument is nil or an empty string, cancel for all functions."
              (setq body (cons (documentation function) body)))
          (fset function (cons 'lambda (cons (car contents) body)))))))
 
-(defun debug-on-entry-1 (function defn flag)
-  (let ((tail defn))
+(defun debug-on-entry-1 (function flag)
+  (let* ((defn (symbol-function function))
+        (tail defn))
     (if (subrp tail)
        (error "%s is a built-in function" function)
       (if (eq (car tail) 'macro) (setq tail (cdr tail)))
@@ -708,10 +711,10 @@ If argument is nil or an empty string, cancel for all functions."
       ;; Skip the interactive form.
       (when (eq 'interactive (car-safe (cadr tail)))
        (setq tail (cdr tail)))
-      (unless (eq flag (equal (cadr tail) debug-entry-code))
+      (unless (eq flag (equal (cadr tail) '(implement-debug-on-entry)))
        ;; Add/remove debug statement as needed.
        (if flag
-           (setcdr tail (cons debug-entry-code (cdr tail)))
+           (setcdr tail (cons '(implement-debug-on-entry) (cdr tail)))
          (setcdr tail (cddr tail))))
       defn)))