Edebug
works by instrumenting the definition of a function at the Lisp level: it cannot work on a built-in function like apply
because there is no Lisp definition that it can get its hands on to instrument.
If you are trying to debug apply
, you have to do it by running Emacs under a debugger like GDB and putting a breakpoint on the C function that is called apply
at the Lisp level. Do C-h f apply
, follow the link and you'll see that the C function is called Fapply
. So, start Emacs under GDB, put a breakpoint on Fapply
, start the program (i.e. Emacs) from the debugger and call apply
from Lisp: it will stop at the first statement of Fapply
and you can single step (in the C code) from there.
See the GDB manual for details. The point is that GNU Emacs is a C program, not a Lisp program, despite the fact that most of its functionality is implemented in Lisp: the core of it is written in C.