Stefan Monnier writes: >>> That is, if edebug is loaded, then `C-M-x' (even if given no prefix) >>> stops macroexpanding the defun? >> Ah, looks like the code of `eval-defun` was upgraded to do >> eager-macroexpansion, but Edebug overrides it and hasn't been similarly >> upgraded (or better yet: improved so as to just use the normal code when >> the code is not instrumented). > > I just installed a fix for that, which makes Edebug reuse the normal > `eval-defun` code. I think that commit causes 'make test/edebug-tests' to hang: --8<---------------cut here---------------start------------->8--- make test/edebug-tests make -C test edebug-tests make[1]: Entering directory '/home/blc/.local/src/emacs/test' make[2]: Entering directory '/home/blc/.local/src/emacs/test' GEN lisp/emacs-lisp/edebug-tests.log Running 43 tests (2021-02-18 16:34:55+0000, selector `(not (tag :unstable))') Edebug: edebug-cl-defmethod-qualifier (number) Edebug: edebug-cl-defmethod-qualifier :around (number) passed 1/43 edebug-cl-defmethod-qualifier (0.000698 sec) Edebug: edebug-anon584 passed 2/43 edebug-tests--&rest-behavior (0.000304 sec) Edebug: f@cl-flet@585 Edebug: gate@cl-flet@586 Edebug: edebug-test-code-cl-flet1 passed 3/43 edebug-tests--conflicting-internal-names (0.062670 sec) Edebug: edebug-test-code-range Go... passed 4/43 edebug-tests-backtrace-goto-source (0.220103 sec) Edebug: edebug-anon651 Edebug: edebug-test-code-make-lambda Breakpoint set in edebug-anon651 Edebug: edebug-test-code-use-lambda Go... Break Result: 1 (#o1, #x1, ?\C-a) Go... passed 5/43 edebug-tests-break-in-lambda-out-of-defining-context (0.038740 sec) passed 6/43 edebug-tests-check-keymap (0.000361 sec) Edebug: edebug-test-code-circular-read-syntax passed 7/43 edebug-tests-circular-read-syntax (0.015725 sec) Edebug: inner@cl-flet@10000 Edebug: inner@cl-flet@10001 Edebug: edebug-tests-cl-flet-1 Edebug: inner@cl-flet@10002 Edebug: edebug-tests-cl-flet-2 passed 8/43 edebug-tests-cl-flet (0.001139 sec) Edebug: wrap@cl-macrolet@654 Edebug: edebug-test-code-use-cl-macrolet --8<---------------cut here---------------end--------------->8--- 0. ./src/emacs -Q 1. M-x load-file RET test/lisp/emacs-lisp/edebug-tests.elc RET 2. M-x ert RET RET This starts an Edebug session in edebug-test-code-use-cl-macrolet: