• Gemini Lasswell's avatar
    Add new commands to Edebug backtraces · ca983772
    Gemini Lasswell authored
    Add commands to go to source if available, and to show and hide
    Edebug's instrumentation.  Make Edebug pop to backtraces instead of
    displaying them, which makes Edebug consistant with the behavior of
    ERT and the Lisp Debugger.
    * doc/lispref/edebug.texi (Edebug Misc): Document when and how you can
    jump to source code from an Edebug backtrace.  Document
    'edebug-backtrace-show-instrumentation' and
    'edebug-backtrace-hide-instrumentation'.
    * lisp/emacs-lisp/backtrace.el (backtrace-frame): Add comments to
    describe the fields.
    (backtrace-goto-source-functions): New
    abnormal hook.
    (backtrace-mode-map): Add keybinding and menu item for
    backtrace-goto-source.
    (backtrace--flags-width): New constant.
    (backtrace-update-flags): Use it.
    (backtrace-goto-source): New command.
    (backtrace--print-flags): Print the :source-available flag.
    * lisp/emacs-lisp/edebug.el (edebug-backtrace-frames)
    (edebug-instrumented-backtrace-frames): New variables.
    (edebug-backtrace, edebug--backtrace-frames): Remove functions.
    (edebug-pop-to-backtrace, edebug--backtrace-goto-source)
    (edebug--add-source-info): New functions.
    (edebug-mode-map, edebug-mode-menus): Replace 'edebug-backtrace' with
    'edebug-pop-to-backtrace'.
    (edebug--strip-instrumentation): New function.
    (edebug--unwrap-and-add-info): Remove.
    (edebug-unwrap-frame, edebug-add-source-info): New functions.
    (edebug-backtrace-show-instrumentation)
    (edebug-backtrace-hide-instrumentation): New commands.
    * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-check-keymap):
    Verify keybindings in backtrace-mode-map used by new test.
    Update with binding for 'edebug-pop-to-backtrace'.
    (edebug-tests-backtrace-goto-source): New test.
    * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el
    (edebug-test-code-range): Add a new stop point.
    ca983772
edebug.el 157 KB