home *** CD-ROM | disk | FTP | other *** search
Wrap
(provide (quote debug)) (setq debug-buffer (make-buffer "*debugger*") debug-keymap (make-keylist)) (set-buffer-special debug-buffer t) (add-buffer debug-buffer) (bind-keys debug-keymap "z" (quote debug-step-into) "s" (quote (debug-set-result nil)) "t" (quote debug-step-over) "r" (quote debug-full-speed) "b" (quote (debug-backtrace 2)) "esc" (quote (debug-set-result (eval (read (prompt "Eval: "))))) "c" (quote (debug-continue nil)) "d" (quote (debug-continue t))) (with-buffer debug-buffer (setq ctrl-c-keymap debug-keymap) (split-line) (insert "::Lisp Debugger::\n\nctrl-c z : step into form\nctrl-c s : skip form\nctrl-c t : step over form\nctrl-c r : run full speed\nctrl-c b : print backtrace\nctrl-c esc : set value of form\nctrl-c c : continue after error\nctrl-c d : break after error\n\n")) (defun debug-entry (debug-obj debug-depth) (lisp-code "±\t\tHY\tH\t\n\tHsG±H" [debug-buffer goto line-start file-end format "%s%S\n" make-string 2 debug-depth debug-obj next-line 1 indent-pos prev-line (lisp-code "" [recursive-edit] 1) (quote debug-entry)] 7)) (defun debug-exit (debug-val debug-depth) (lisp-code "±\t\tHY\tG±H" [debug-buffer goto line-start file-end format "%s=> %S\n" make-string 2 debug-depth debug-val] 7)) (defun debug-error-entry (error-list) (lisp-code "±\t\tHLzÿLMHsG±H" [debug-buffer goto line-start file-end format "*** Error: %s: %S\n" error-list error-message (lisp-code "HI" [recursive-edit] 1) (quote debug-error-entry)] 6)) (defun debug-step-into nil (lisp-code "xüKtû" [debug-obj debug-entry 1 beep] 3)) (defun debug-set-result (value) (lisp-code "xüKtû" [debug-obj debug-entry 4 value beep] 3)) (defun debug-step-over nil (lisp-code "xüKtû" [debug-obj debug-entry 2 beep] 3)) (defun debug-full-speed nil (lisp-code "xüKtû" [debug-obj debug-entry 3 beep] 3)) (defun debug-continue (&optional break-p) (lisp-code "xütû" [error-list debug-error-entry break-p beep] 2)) (defun debug-backtrace (depth) (lisp-code "\t\tHD4\tHh\t\n\nHE" [goto line-start file-end cursor-pos old-pos backtrace debug-buffer delete-area next-line depth dup-pos split-line] 6))