When Edebug instruments an expression that calls a Lisp macro, it needs
additional advice to do the job properly. This is because there is no
way to tell which subexpressions of the macro call are forms to be
evaluated. (Evaluation may occur explicitly in the macro body, or when
the resulting expansion is evaluated, or any time later.) You must
explain the format of calls to each macro to enable Edebug to handle it.
To do this, use def-edebug-spec
to define the format of
calls to a given macro.
The macro argument may actually be any symbol, not just a macro name.
Here is a simple example that defines the specification for the
for
macro described in the Emacs Lisp Reference Manual, followed
by an alternative, equivalent specification.
(def-edebug-spec for (symbolp "from" form "to" form "do" &rest form)) (def-edebug-spec for (symbolp ['from form] ['to form] ['do body]))
Here is a table of the possibilities for specification and how each directs processing of arguments.
t
0
Go to the first, previous, next, last section, table of contents.