[gdb/tui] Fix breakpoint display functionality
authorTom de Vries <tdevries@suse.de>
Thu, 21 Oct 2021 15:48:07 +0000 (17:48 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 21 Oct 2021 15:48:07 +0000 (17:48 +0200)
commitcdeebaab92676c3e433f1d225b304c78ba274fe1
tree21be851a2345906f47fbcd9c8f6f394ff0f5e624
parente3e4224e79906a518a1446049de9924a60d05e7c
[gdb/tui] Fix breakpoint display functionality

In commit 81e6b8eb208 "Make tui-winsource not use breakpoint_chain", a loop
body was transformed into a lambda function body:
...
-      for (bp = breakpoint_chain;
-           bp != NULL;
-           bp = bp->next)
+      iterate_over_breakpoints ([&] (breakpoint *bp) -> bool
...
and consequently:
- a continue was replaced by a return, and
- a final return was added.

Then in commit 240edef62f0 "gdb: remove iterate_over_breakpoints function", we
transformed back to a loop body:
...
-      iterate_over_breakpoints ([&] (breakpoint *bp) -> bool
+      for (breakpoint *bp : all_breakpoints ())
...
but without reverting the changes that introduced the two returns.

Consequently, breakpoints no longer show up in the tui source window.

Fix this by reverting the changes that introduced the two returns.

Build on x86_64-linux, tested with all .exp test-cases that contain
tuiterm_env.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28483
gdb/testsuite/gdb.tui/break.exp [new file with mode: 0644]
gdb/tui/tui-winsource.c