emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113898: * lisp/emacs-lisp/debug.el (debugger-setup-


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r113898: * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Put point on the
Date: Thu, 15 Aug 2013 17:21:25 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113898
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15101
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Thu 2013-08-15 13:21:19 -0400
message:
  * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Put point on the
  previous line.
  (debugger-eval-expression, debugger-record-expression):
  Use read--expression (bug#15102).
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/emacs-lisp/debug.el       debug.el-20091113204419-o5vbwnq5f7feedwu-398
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-08-15 14:29:08 +0000
+++ b/lisp/ChangeLog    2013-08-15 17:21:19 +0000
@@ -1,3 +1,10 @@
+2013-08-15  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/debug.el (debugger-setup-buffer): Put point on the
+       previous line (bug#15101).
+       (debugger-eval-expression, debugger-record-expression):
+       Use read--expression (bug#15102).
+
 2013-08-15  Michael Albinus  <address@hidden>
 
        Remove byte compiler warnings, visible when compiling with
@@ -20,8 +27,8 @@
        (tramp-flush-connection-property, tramp-list-connections)
        (tramp-parse-connection-properties): Prefix unused arguments with "_".
 
-       * net/tramp-compat.el (tramp-compat-make-temp-file): Rename
-       FILENAME to F.
+       * net/tramp-compat.el (tramp-compat-make-temp-file):
+       Rename FILENAME to F.
 
        * net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
        (tramp-gvfs-handle-write-region, tramp-bluez-parse-device-names)

=== modified file 'lisp/emacs-lisp/debug.el'
--- a/lisp/emacs-lisp/debug.el  2013-07-26 07:38:18 +0000
+++ b/lisp/emacs-lisp/debug.el  2013-08-15 17:21:19 +0000
@@ -288,33 +288,41 @@
   (insert "Debugger entered")
   ;; lambda is for debug-on-call when a function call is next.
   ;; debug is for debug-on-entry function called.
-  (pcase (car args)
-    ((or `lambda `debug)
-     (insert "--entering a function:\n"))
-    ;; Exiting a function.
-    (`exit
-     (insert "--returning value: ")
-     (setq debugger-value (nth 1 args))
-     (prin1 debugger-value (current-buffer))
-     (insert ?\n)
-     (delete-char 1)
-     (insert ? )
-     (beginning-of-line))
-    ;; Debugger entered for an error.
-    (`error
-     (insert "--Lisp error: ")
-     (prin1 (nth 1 args) (current-buffer))
-     (insert ?\n))
-    ;; debug-on-call, when the next thing is an eval.
-    (`t
-     (insert "--beginning evaluation of function call form:\n"))
-    ;; User calls debug directly.
-    (_
-     (insert ": ")
-     (prin1 (if (eq (car args) 'nil)
-                (cdr args) args)
-            (current-buffer))
-     (insert ?\n)))
+  (let ((pos (point)))
+    (pcase (car args)
+      ((or `lambda `debug)
+       (insert "--entering a function:\n")
+       (setq pos (1- (point))))
+      ;; Exiting a function.
+      (`exit
+       (insert "--returning value: ")
+       (setq pos (point))
+       (setq debugger-value (nth 1 args))
+       (prin1 debugger-value (current-buffer))
+       (insert ?\n)
+       (delete-char 1)
+       (insert ? )
+       (beginning-of-line))
+      ;; Debugger entered for an error.
+      (`error
+       (insert "--Lisp error: ")
+       (setq pos (point))
+       (prin1 (nth 1 args) (current-buffer))
+       (insert ?\n))
+      ;; debug-on-call, when the next thing is an eval.
+      (`t
+       (insert "--beginning evaluation of function call form:\n")
+       (setq pos (1- (point))))
+      ;; User calls debug directly.
+      (_
+       (insert ": ")
+       (setq pos (point))
+       (prin1 (if (eq (car args) 'nil)
+                  (cdr args) args)
+              (current-buffer))
+       (insert ?\n)))
+    ;; Place point on "stack frame 0" (bug#15101).
+    (goto-char pos))
   ;; After any frame that uses eval-buffer,
   ;; insert a line that states the buffer position it's reading at.
   (save-excursion
@@ -533,16 +541,15 @@
         (progn ,@body)
       (setq debugger-outer-match-data (match-data)))))
 
-(defun debugger-eval-expression (exp)
+(defun debugger-eval-expression (exp &optional nframe)
   "Eval an expression, in an environment like that outside the debugger.
 The environment used is the one when entering the activation frame at point."
   (interactive
-   (list (read-from-minibuffer "Eval: "
-                              nil read-expression-map t
-                              'read-expression-history)))
-  (let ((nframe (condition-case nil (1+ (debugger-frame-number 'skip-base))
-                  (error 0))) ;; If on first line.
-        (base (if (eq 'debug--implement-debug-on-entry
+   (list (read--expression "Eval in stack frame: ")))
+  (let ((nframe (or nframe
+                    (condition-case nil (1+ (debugger-frame-number 'skip-base))
+                      (error 0)))) ;; If on first line.
+         (base (if (eq 'debug--implement-debug-on-entry
                       (cadr (backtrace-frame 1 'debug)))
                   'debug--implement-debug-on-entry 'debug)))
     (debugger-env-macro
@@ -651,11 +658,7 @@
 (defun debugger-record-expression  (exp)
   "Display a variable's value and record it in `*Backtrace-record*' buffer."
   (interactive
-   (list (read-from-minibuffer
-         "Record Eval: "
-         nil
-         read-expression-map t
-         'read-expression-history)))
+   (list (read--expression "Record Eval: ")))
   (let* ((buffer (get-buffer-create debugger-record-buffer))
         (standard-output buffer))
     (princ (format "Debugger Eval (%s): " exp))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]