From 085ee439bfe78b78ed50f58dc56285b839153322 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 27 Jan 2018 12:01:54 +0200 Subject: [PATCH] Improve documentation of 'edebug-defun' * doc/lispref/edebug.texi (Instrumenting): Document a workaround for a failure to instrument due to unknown macros. (Bug#30243) (Bug#10577) --- doc/lispref/edebug.texi | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi index 1b0d314ee71..39430deb48e 100644 --- a/doc/lispref/edebug.texi +++ b/doc/lispref/edebug.texi @@ -209,6 +209,20 @@ session, it runs the hook @code{edebug-setup-hook}, then sets it to @code{nil}. You can use this to load Edebug specifications associated with a package you are using, but only when you use Edebug. +@cindex edebug, failure to instrument + If Edebug detects a syntax error while instrumenting, it leaves point +at the erroneous code and signals an @code{invalid-read-syntax} error. +@c FIXME? I can't see that it "leaves point at the erroneous code". +Example: + +@example +@error{} Invalid read syntax: "Expected lambda expression" +@end example + + One potential reason for such a failure to instrument is that some +macro definitions are not yet known to Emacs. To work around this, +load the file which defines the function you are about to instrument. + @findex eval-expression @r{(Edebug)} To remove instrumentation from a definition, simply re-evaluate its definition in a way that does not instrument. There are two ways of @@ -216,10 +230,6 @@ evaluating forms that never instrument them: from a file with @code{load}, and from the minibuffer with @code{eval-expression} (@kbd{M-:}). - If Edebug detects a syntax error while instrumenting, it leaves point -at the erroneous code and signals an @code{invalid-read-syntax} error. -@c FIXME? I can't see that it "leaves point at the erroneous code". - @xref{Edebug Eval}, for other evaluation functions available inside of Edebug. -- 2.39.2