emacs-devel
[Top][All Lists]
Advanced

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

Re: Problems with debug-on-entry in the Lisp debugger.


From: Stefan Monnier
Subject: Re: Problems with debug-on-entry in the Lisp debugger.
Date: Tue, 08 Mar 2005 13:59:22 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

> This gives a backtrace like this:

> ------ Buffer: *Backtrace* ------ 
> Debugger entered--entering a function:
> * (lambda (var) (if (or inhibit-debug-on-entry debugger-jumping-flag) nil 
> (debug ...)) (list (quote setq) var (list ... var)))(x)
>   (inc x)
>   (progn (setq x 0) (inc x))
>   eval((progn (setq x 0) (inc x)))
>   eval-last-sexp-1(nil)
>   eval-last-sexp(nil)
>   call-interactively(eval-last-sexp)
> ------ Buffer: *Backtrace* ------ 

> where you can see the debug-entry-code (if (or inhibit-debug-on-entry
> debugger-jumping-flag) nil (debug ...)).  I would prefer to hide the
> internals of the debugger from its users.

debug.el already hides its internals.  See debugger-setup-buffer.
It just has to be updated to hide this part of the internals.

> You proposed to change defun, defsubst, defalias and defmacro to add
> debug-entry-code when their argument was in debug-function-list.  That
> is a similarly big change.

There's no need to do that.  The hooks are already present for defadvice, so
we should simply use them.  Better yet, we should use defadvice directly:

   (defadvice <FOO> (before debug-on-entry activate)
     (if inhibit-debug-on-entry nil (debug 'debug)))

This will properly survive function redefinitions.


        Stefan





reply via email to

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