aliases to also work for interactive functions.
Use the same wrapper for subroutines.
(cancel-debug-on-entry): Get rid of the now-useless wrapper.
(debug-on-entry-1): Correctly skip docstrings and interactive forms.
(debugger-frame-number): Figure out the offset directly.
(debugger-setup-buffer): Don't use debugger-frame-offset.
(debugger-frame, debugger-frame-clear): Likewise.
(debugger-jump): Don't alter debugger-frame-offset.
rather than regexp search and (2) copying text properties
already set up on text unchanged from the previous backtrace.
(debugger-previous-backtrace): New variable.
backtrace using `message', then exit Emacs.
(debugger-batch-max-lines): New variable.
(debugger-setup-buffer): New subroutine, broken out of `debug'.
Change the messages put at the start, to say that the debugger
was entered.
(debug): Bind and use debugger-outer-inhibit-redisplay.
Bind inhibit-redisplay to nil.
(debugger-env-macro): Treat inhibit-redisplay like other outside vars.
(debugger-env-macro): New general purpose macro for all debugger
functions; separated from `debugger-eval-expression'.
(debugger-eval-expression): Use `debugger-env-macro'.
(debugger-record-buffer): New variable.
(debugger-record-expression): New user function , key "R".
(debugger-mode): Now runs hook `debugger-mode-hook'.
(debug): Bind load-read-function to nil; save old value
in debugger-outer-load-read-function and restore at end.
(debugger-eval-expression): Handle load-read-function
like other magic variables.
(debugger-outer-overriding-local-map): New variable.
(debug): Bind overriding-local-map to nil; save old value
in debugger-outer-overriding-local-map and restore at end.
(debugger-eval-expression): Handle overriding-local-map
like other magic variables.
neutral values. Save the outer values in debugger-last-command, etc.
Put those saved values back into effect when returning.
(debugger-eval-expression): Put the saved values into effect
while evaluating, and store modified values back into
debugger-outer-... after evaluating.