Subject: bug#71761: 29.3; Emacs-Lisp menu display is incorrect during Edebug

From: Jeremy Bryant <[email-masked]>
Date: Fri, 28 Jun 2024 19:10:05 +0100

tpeplt <[email-masked]> writes:

> Emacs Maintainers,
>
>    When a function has been instrumented for debugging with
> Edebug and the debugger has entered the function for
> stepping, the menu item ‘Emacs-Lisp’ does not list the
> correct entries (which should be the same entries as they
> were before entering the debugger) in its drop-down menu.
> Instead, the drop-down menu lists two entries ‘Emacs-Lisp’
> and ‘Emacs-Lisp’.  These two entries, in turn, are sub-menus
> whose contents are the correct menu items for ‘Emacs-Lisp’,
> namely, ‘Indent Line’, ‘Indent Region’, and so on.
>
>    After exiting the debugger, the menu items for the
> ‘Emacs-Lisp’ menu item are displayed correctly.
>
> Recipe for reproducing this menu-display error:
>
>    1. Start Emacs from a shell prompt with: $ emacs -Q
>
>    2. Create a new Emacs Lisp file with C-x C-f, say,
>       new-file.el
>
>    3. Create a simple Emacs Lisp function:
>
>       (defun new-fun (name)
>         (if name 'some-name nil))
>
>    4. Instrument the function with C-u M-C-x.
>
>    5. Check the menu listing for ‘Emacs-Lisp’ to confirm
>       that it is correct.
>
>    6. Invoke the instrumented function to enter Edebug:
>
>       (new-fun t)
>
>    7. Check the menu listing for ‘Emacs-Lisp’ to see that it
>       now lists (only) two identical ‘Emacs-Lisp’ entries,
>       each of which is a sub-menu.  The sub-menus will list
>       the correct entries for ‘Emacs-Lisp’.
>
>    8. In the debugger, type ‘c’ to continue to complete the
>       debugging session.  Once it has exited, check the
>       ‘Emacs-Lisp’ menu item to confirm that it now has the
>       correct entries.  Each time that Edebug is entered,
>       the ‘Emacs-Lisp’ menu’s entries are two incorrect
>       sub-menus.
>
>    Please let me know if anything above is unclear or if you are unable
> to reproduce this problem.

The following may help to narrow down the problem:

In Emacs 29.4:
I am able to reproduce the bug in Emacs GUI
But in Emacs TTY (emacs -nw), the problem seems absent, the menu bar
appears correct.