[PATCH 0/4] Fix a set of terminal/readline handling bugs/crashes

Pedro Alves
2014-10-09T18:00:37Z

This series fixes a couple terminal/readline handling bugs that result
in GDB crashing with:

readline: readline_callback_read_char() called with no handler!
Aborted (core dumped)
$

... and also a bug where we lose the "&" when repeating background
commands.

Because the these won't trigger without target-async, the first two
are user-visible regressions in 7.8, which has async by default (7.7
didn't). As such, I'd like to include these in 7.8.1.

For last one (gdb/17471), I'm a bit borderline (re. 7.8.1).
Technically, it isn't really a regression, but still annoying (see
gdb/17300). If you'd prefer not having that in 7.8.1, please do speak
up.

Tested on x86_64 Fedora 20, native and gdbserver.

Pedro Alves (4):
Make common code handle target_terminal_* idempotency
PR gdb/17472: With annotations, input while executing in the
foreground crashes readline/GDB
PR gdb/17300: Input after "c -a" crashes readline/GDB
PR gdb/17471: Repeating a background command makes it foreground

gdb/annotate.c | 22 ++-
gdb/infcmd.c | 160 ++++++++++++++-------
gdb/target.c | 64 +++++++++
gdb/target.h | 25 ++--
.../gdb.base/annota-input-while-running.c | 25 ++++
.../gdb.base/annota-input-while-running.exp | 130 +++++++++++++++++
gdb/testsuite/gdb.base/bg-execution-repeat.c | 33 +++++
gdb/testsuite/gdb.base/bg-execution-repeat.exp | 86 +++++++++++
.../gdb.base/continue-all-already-running.c | 25 ++++
.../gdb.base/continue-all-already-running.exp | 79 ++++++++++
gdb/windows-nat.c | 2 +-
11 files changed, 582 insertions(+), 69 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.c
create mode 100644 gdb/testsuite/gdb.base/annota-input-while-running.exp
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.c
create mode 100644 gdb/testsuite/gdb.base/bg-execution-repeat.exp
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.c
create mode 100644 gdb/testsuite/gdb.base/continue-all-already-running.exp

--
1.9.3