[PATCH v3 0/4] [gdb/cli] Allow source highlighting to be interrupted

Tom de Vries
2023-10-16T09:18:47Z

I wrote this patch series to fix PR cli/30934.

The 1st patch is an unrelated optimization, which I added to this series
because it touches the same code.

The 2nd patch factors out a function.

The 3rd patch adds a means to keep track of styling failures in the
source cache, as suggested here (
https://sourceware.org/pipermail/gdb-patches/2023-October/203164.html ).

The 4th patch fixes the PR cli/30934.

Changes in v3:
- dropped the "#if __cplusplus >= 202002L" in the first patch.
- added a reset of the highlighter's EventListener to prevent a dangling
pointer.

Changes in v2:
- fixed a build problem with --disable-source-highlight, reported by the linaro
CI.
- temporarily installs the default_quit_handler to be able to use QUIT
- added a question whether to interrupt highlighting or not
(in the RFC, I had a warning, in v1 I dropped it)
- added "gdb_assert (target_terminal::is_ours ())"

Adding the question was inspired by the v3 patch "gdb/debuginfod: Ctrl-C ask
to cancel further downloads" (
https://sourceware.org/pipermail/gdb-patches/2023-March/197679.html ).

Submission history:
- RFC:
https://sourceware.org/pipermail/gdb-patches/2023-October/203157.html
- v1:
https://sourceware.org/pipermail/gdb-patches/2023-October/203179.html
- v2:
https://sourceware.org/pipermail/gdb-patches/2023-October/203199.html

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30934

Tom de Vries (4):
[gdb/cli] Skip string copy in source_cache::ensure
[gdb/cli] Factor out try_source_highlight
[gdb/cli] Keep track of styling failures in source_cache
[gdb/cli] Allow source highlighting to be interrupted

gdb/source-cache.c | 175 +++++++++++++++++++++++++++++++++++----------
gdb/source-cache.h | 4 ++
2 files changed, 143 insertions(+), 36 deletions(-)

base-commit: 6674b23fe6409e08de9c36f640bd58127eff9dda
--
2.35.3