This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [PATCH 0/4] Exec events in gdbserver on Linux
- From: "Breazeal, Don" <donb at codesourcery dot com>
- To: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 16 Apr 2014 16:44:44 +0000
- Subject: RE: [PATCH 0/4] Exec events in gdbserver on Linux
- Authentication-results: sourceware.org; auth=none
- References: <DA279C53C4A5884A907135DFCD7A059A0E1D95B1 at NA-MBX-02 dot mgc dot mentorg dot com>
Ping for maintainer comments on this patch series:
https://sourceware.org/ml/gdb-patches/2014-04/msg00037.html
https://sourceware.org/ml/gdb-patches/2014-04/msg00040.html
https://sourceware.org/ml/gdb-patches/2014-04/msg00072.html
The documentation piece was previously approved:
https://sourceware.org/ml/gdb-patches/2014-04/msg00071.html
Thanks,
--Don
> -----Original Message-----
> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] On Behalf Of Breazeal, Don
> Sent: Wednesday, April 02, 2014 3:24 PM
> To: gdb-patches@sourceware.org
> Subject: [PATCH 0/4] Exec events in gdbserver on Linux
>
> This patch implements support for exec events in gdbserver on GNU/Linux.
> This is a step towards the "follow fork/exec" item in the local/remote
> debugging feature parity project:
> (https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity). Luis had
> started work on this last year, and handed it off to me at the end of
> January. (BTW, thanks to Luis for his advice on this, although any
> problems with this patch are entirely mine.)
>
> Follow-exec-mode and rerun behave as expected in multiprocess mode
> (target extended-remote), where follow-exec-mode maintains the specified
> inferiors and rerun runs the last executable file to be exec'd.
> Catchpoints for exec are not implemented in this patch series, since
> this will be easier to do once fork and vfork events are also supported.
>
> - Patch 1/4 implements support for the extended ptrace event
> PTRACE_EVENT_EXIT, which is a prerequisite for the exec event support.
> - Patch 2/4 implements the exec event support.
> - Patch 3/4 adds documentation for the new RSP "Stop Reply" message.
> - Patch 4/4 extends the tests gdb.threads/non-ldr-exc-[1-4].exp to test
> in non-stop mode as well as in all-stop mode.
>
> There are a couple of significant aspects to this patch. First, it uses
> the ptrace extension PTRACE_EVENT_EXIT to detect thread exit, in
> particular the exit of a thread group leader when a non-leader calls
> exec. Use of this event was necessary due to a race condition in the
> two-thread case. It is only used internally; exit events detected this
> way are not exposed to the user, and exit processing was changed as
> little as possible.
>
> Second, it sends a signal to each lwp after an exec event in order to
> identify and clean up the lwp entry for the exec'ing thread. This
> happens in the normal course of things for all-stop mode, but in non-
> stop mode gdbserver uses SIGSTOP to stop, then resume all of the non-
> leader threads to accomplish this.
>
> More detailed explanations of these issues is included in the patch 2/4
> email.
>
> My intent is to follow up with implementations of remote fork/vfork
> events and associated catchpoints.
>
> --Don
>
> gdb/common/linux-ptrace.c | 45 ++++-
> gdb/doc/gdb.texinfo | 6 +
> gdb/gdbserver/linux-low.c | 274
> +++++++++++++++++++++++++---
> gdb/gdbserver/linux-low.h | 5 +
> gdb/gdbserver/remote-utils.c | 28 ++-
> gdb/remote.c | 27 ++-
> gdb/testsuite/gdb.threads/non-ldr-exc-1.exp | 15 +-
> gdb/testsuite/gdb.threads/non-ldr-exc-2.exp | 15 +-
> gdb/testsuite/gdb.threads/non-ldr-exc-3.exp | 15 +-
> gdb/testsuite/gdb.threads/non-ldr-exc-4.exp | 15 +-
> 10 files changed, 395 insertions(+), 50 deletions(-)