comparison lisp/emacs-lisp/debug.el @ 90119:8395880305fe

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-25 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 173-179) - Update from CVS
author Miles Bader <miles@gnu.org>
date Mon, 14 Mar 2005 05:27:53 +0000
parents e330fedc9152 dbd707c470de
children 30ad2795fdab
comparison
equal deleted inserted replaced
90118:e330fedc9152 90119:8395880305fe
168 (cursor-in-echo-area nil)) 168 (cursor-in-echo-area nil))
169 (unwind-protect 169 (unwind-protect
170 (save-excursion 170 (save-excursion
171 (save-window-excursion 171 (save-window-excursion
172 (with-no-warnings 172 (with-no-warnings
173 (setq unread-command-char -1)) 173 (setq unread-command-char -1))
174 (when (eq (car debugger-args) 'debug)
175 ;; Skip the frames for backtrace-debug, byte-code,
176 ;; and implement-debug-on-entry.
177 (backtrace-debug 4 t)
178 ;; Place an extra debug-on-exit for macro's.
179 (when (eq 'lambda (car-safe (cadr (backtrace-frame 4))))
180 (backtrace-debug 5 t)))
174 (pop-to-buffer debugger-buffer) 181 (pop-to-buffer debugger-buffer)
175 (debugger-mode) 182 (debugger-mode)
176 (debugger-setup-buffer debugger-args) 183 (debugger-setup-buffer debugger-args)
177 (when noninteractive 184 (when noninteractive
178 ;; If the backtrace is long, save the beginning 185 ;; If the backtrace is long, save the beginning
188 (delete-region middlestart (point))) 195 (delete-region middlestart (point)))
189 (insert "...\n")) 196 (insert "...\n"))
190 (goto-char (point-min)) 197 (goto-char (point-min))
191 (message "%s" (buffer-string)) 198 (message "%s" (buffer-string))
192 (kill-emacs)) 199 (kill-emacs))
193 (if (eq (car debugger-args) 'debug)
194 ;; Skip the frames for backtrace-debug, byte-code,
195 ;; and implement-debug-on-entry.
196 (backtrace-debug 4 t))
197 (message "") 200 (message "")
198 (let ((standard-output nil) 201 (let ((standard-output nil)
199 (buffer-read-only t)) 202 (buffer-read-only t))
200 (message "") 203 (message "")
201 ;; Make sure we unbind buffer-read-only in the right buffer. 204 ;; Make sure we unbind buffer-read-only in the right buffer.
223 debugger-outer-overriding-terminal-local-map) 226 debugger-outer-overriding-terminal-local-map)
224 (setq track-mouse debugger-outer-track-mouse) 227 (setq track-mouse debugger-outer-track-mouse)
225 (setq last-command debugger-outer-last-command) 228 (setq last-command debugger-outer-last-command)
226 (setq this-command debugger-outer-this-command) 229 (setq this-command debugger-outer-this-command)
227 (with-no-warnings 230 (with-no-warnings
228 (setq unread-command-char debugger-outer-unread-command-char)) 231 (setq unread-command-char debugger-outer-unread-command-char))
229 (setq unread-command-events debugger-outer-unread-command-events) 232 (setq unread-command-events debugger-outer-unread-command-events)
230 (setq unread-post-input-method-events 233 (setq unread-post-input-method-events
231 debugger-outer-unread-post-input-method-events) 234 debugger-outer-unread-post-input-method-events)
232 (setq last-input-event debugger-outer-last-input-event) 235 (setq last-input-event debugger-outer-last-input-event)
233 (setq last-command-event debugger-outer-last-command-event) 236 (setq last-command-event debugger-outer-last-command-event)
261 (point))) 264 (point)))
262 (insert "Debugger entered") 265 (insert "Debugger entered")
263 ;; lambda is for debug-on-call when a function call is next. 266 ;; lambda is for debug-on-call when a function call is next.
264 ;; debug is for debug-on-entry function called. 267 ;; debug is for debug-on-entry function called.
265 (cond ((memq (car debugger-args) '(lambda debug)) 268 (cond ((memq (car debugger-args) '(lambda debug))
266 (insert "--entering a function:\n") 269 (insert "--entering a function:\n"))
267 (if (eq (car debugger-args) 'debug)
268 (progn
269 (delete-char 1)
270 (insert ?*)
271 (beginning-of-line))))
272 ;; Exiting a function. 270 ;; Exiting a function.
273 ((eq (car debugger-args) 'exit) 271 ((eq (car debugger-args) 'exit)
274 (insert "--returning value: ") 272 (insert "--returning value: ")
275 (setq debugger-value (nth 1 debugger-args)) 273 (setq debugger-value (nth 1 debugger-args))
276 (prin1 debugger-value (current-buffer)) 274 (prin1 debugger-value (current-buffer))
506 (prog1 504 (prog1
507 (let ((save-ucc (with-no-warnings unread-command-char))) 505 (let ((save-ucc (with-no-warnings unread-command-char)))
508 (unwind-protect 506 (unwind-protect
509 (progn 507 (progn
510 (with-no-warnings 508 (with-no-warnings
511 (setq unread-command-char debugger-outer-unread-command-char)) 509 (setq unread-command-char debugger-outer-unread-command-char))
512 (prog1 (progn ,@body) 510 (prog1 (progn ,@body)
513 (with-no-warnings 511 (with-no-warnings
514 (setq debugger-outer-unread-command-char unread-command-char)))) 512 (setq debugger-outer-unread-command-char unread-command-char))))
515 (with-no-warnings 513 (with-no-warnings
516 (setq unread-command-char save-ucc)))) 514 (setq unread-command-char save-ucc))))
517 (setq debugger-outer-match-data (match-data)) 515 (setq debugger-outer-match-data (match-data))
518 (setq debugger-outer-load-read-function load-read-function) 516 (setq debugger-outer-load-read-function load-read-function)
519 (setq debugger-outer-overriding-terminal-local-map 517 (setq debugger-outer-overriding-terminal-local-map
520 overriding-terminal-local-map) 518 overriding-terminal-local-map)
521 (setq debugger-outer-overriding-local-map overriding-local-map) 519 (setq debugger-outer-overriding-local-map overriding-local-map)