Subject: 23.0.94; have `d' in debugger treat macro expansion like `c' does

From: "Drew Adams" <[email-masked]>
Date: Wed, 3 Jun 2009 14:44:00 -0700

Feature request -
 
In the Lisp debugger (the one for `debug-on-entry' etc.), if you're
going along doing `d, d, d...', and you get to a Lisp macro, such as
`dolist', you must switch to `c' instead of `d', if you don't want to
drill down into the steps of the macro expansion itself.
 
It would be good to be able to optionally have `d' skip over macro
expansions (that is, expand all at once, like `c' does). A new user
option could control this.
 
[Alternatively, we could have a different key from `d', say `s' (for
"step"), that does this always - does what `d' does except for macros,
where it does what `c' does. But I suspect a user option would be
sufficient - you probably either want to do this all the time or you
don't (no need for two different stepping keys).]
 
With the alternative behavior, in `dolist', for example, you would
step through the function calls, using `d', and automatically skip
over the macro expansions, also using `d'. There are two macro
expansions for `dolist': #[(spec &rest body) "...] for `dolist' itself
and #[(name &rest body) "...] for `block'. No need to switch from `d'
to `c' for those expansions. In something like `dolist', you typically
just want to get quickly to the loop iterations.
 
Using the debugger with things like `dolist' (which I've been doing
for years) is a pain, compared to using the debugger with, say,
`while'. It's almost enough of a pain to make one avoid using `dolist'
and such.
 
In GNU Emacs 23.0.94.1 (i386-mingw-nt5.1.2600)
 of 2009-05-24 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'