This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 0/8] Fix removing inferiors from within "thread apply" commands
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 12 Apr 2017 00:51:05 +0100
- Subject: [PATCH 0/8] Fix removing inferiors from within "thread apply" commands
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=palves at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 8A9347AEAA
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 8A9347AEAA
It took a bit more work than I envisioned, but ...
... this series aims at fixing the issues mentioned here:
https://sourceware.org/ml/gdb-patches/2017-04/msg00137.html
Those are addressed by the last patch in this series (patch 8).
That patch however exposed a couple other latent problems, which are
fixed by the first two patches in this series.
Patch 3 ("C++fy thread_apply_all_command"), I wrote because I first
thought we'd also have to bump the refcounts of all inferiors in
"thread apply all". That's actually not necessary, but still that's a
useful patch for getting rid of cleanups, so I included it here.
Patch 4 increases coverage of a regression test for a related bug. I
had noticed that we weren't making sure that GDB reverts back to no
thread selected in that test. And patch 3 made me realize that that
test also didn't exercise "thread apply $some_thread", which goes via
a different path, so I fixed it too.
Patches 5-7 are preparatory/cleanup work for patch 8.
Tested on x86_64 Fedora 23, native and gdbserver.
Pedro Alves (8):
watch_command_1: Fix dangling frame access
Fix follow-fork latent bug
C++fy thread_apply_all_command
Improve coverage of the PR threads/13217 regression test
GC inferior.c:init_inferior_list
Make inferior a class with cdtors, and use new/delete
Make inferior::detaching a bool, and introduce
scoped_restore::release()
Fix removing inferiors from within "thread apply" commands
gdb/Makefile.in | 6 +-
gdb/breakpoint.c | 34 +++--
gdb/common/scoped_restore.h | 36 +++--
gdb/inferior.c | 52 ++-----
gdb/inferior.h | 110 +++++++++------
gdb/infrun.c | 13 +-
gdb/testsuite/gdb.threads/threadapply.exp | 166 +++++++++++++++++++++-
gdb/testsuite/lib/gdb.exp | 19 +++
gdb/thread.c | 222 ++++++++++++++++--------------
gdb/unittests/scoped_restore-selftests.c | 110 +++++++++++++++
10 files changed, 556 insertions(+), 212 deletions(-)
create mode 100644 gdb/unittests/scoped_restore-selftests.c
--
2.5.5