Enter the TUI. Make a breakpoint somewhere in the visible source code, and notice that a "b" appears in the margin. Now, "delete" the breakpoint -- the "b" remains.
I have a patch.
The master branch has been updated by Tom Tromey <tromey@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0807ab7b88fa5ffb138ba1ee22b33d26e239de2f commit 0807ab7b88fa5ffb138ba1ee22b33d26e239de2f Author: Tom Tromey <tom@tromey.com> Date: Sun Jun 23 21:25:46 2019 -0600 Remove deleted breakpoint from TUI display PR tui/24722 points out that deleting a breakpoint does not cause the "b" to be removed from the breakpoint display. The issue here was that the breakpoint still exists at the moment the breakpoint-deleted observer is notified. This fixes the problem by specially handling the case where a breakpoint is being removed. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> PR tui/24722: * tui/tui-winsource.h (tui_update_all_breakpoint_info) (tui_update_breakpoint_info): Add "being_deleted" parameter. * tui/tui-winsource.c (tui_update_source_window_as_is): Update. (tui_update_all_breakpoint_info): Add "being_deleted" parameter. (tui_update_breakpoint_info): Likewise. * tui/tui-hooks.c (tui_event_create_breakpoint) (tui_event_delete_breakpoint, tui_event_modify_breakpoint): Update.
It turns out that patch is not sufficient :( so I am leaving this open.
I tried this today and it works, so I'm closing this now.