;;;###autoload
(defun debug-on-entry (function)
"Request FUNCTION to invoke debugger each time it is called.
+
When called interactively, prompt for FUNCTION in the minibuffer.
-If you tell the debugger to continue, FUNCTION's execution proceeds.
-This works by modifying the definition of FUNCTION,
-which must be written in Lisp, not predefined.
+
+This works by modifying the definition of FUNCTION. If you tell the
+debugger to continue, FUNCTION's execution proceeds. If FUNCTION is a
+normal function or a macro written in Lisp, you can also step through
+its execution. FUNCTION can also be a primitive that is not a special
+form, in which case stepping is not possible. Break-on-entry for
+primitive functions only works when that function is called from Lisp.
+
Use \\[cancel-debug-on-entry] to cancel the effect of this command.
Redefining FUNCTION also cancels it."
(interactive "aDebug on entry (to function): ")