If I have a buffer with the contents
(defun foo()
(interactive)
(bar)
(message "foo"))
(defun bar()
(interactive)
(message "bar"))
...and call eval-buffer with edebug-all-defs set to t, then both calls to foo and bar directly throw me into edebug-mode (despite not having set any breakpoints).
On the other hand, if I set edebug-all-defs to nil, evaluate the buffer with eval-buffer and then manually instrument the foo definition with edebug-eval-defun (C-u C-M-x) things work a little better: calling foo invokes the debugger, and calling bar does not. However, when stepping through foo, I'm now unable to step into the bar function (presumably because it hasn't been instrumented, the error is Don't know where `bar' is defined. Stepping over the call to bar works just fine and gives the correct result).
Is there a way to instrument all functions in a buffer without making them breakpoints at the same time?
Emacs 24.4.1 on Debian Jessie. Running with -Q does not seem to make a difference.