From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4120 invoked by alias); 28 Apr 2014 17:18:38 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 4106 invoked by uid 89); 28 Apr 2014 17:18:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_20 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Apr 2014 17:18:35 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1WepCK-0002EA-EP from donb@codesourcery.com for gdb-patches@sourceware.org; Mon, 28 Apr 2014 10:18:32 -0700 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Mon, 28 Apr 2014 10:18:32 -0700 Received: from NA-MBX-02.mgc.mentorg.com ([169.254.2.230]) by SVR-ORW-FEM-04.mgc.mentorg.com ([169.254.120.105]) with mapi id 14.02.0247.003; Mon, 28 Apr 2014 10:18:31 -0700 From: "Breazeal, Don" To: "gdb-patches@sourceware.org" Subject: RE: [PATCH 0/4] Exec events in gdbserver on Linux Date: Mon, 28 Apr 2014 17:18:00 -0000 Message-ID: References: In-Reply-To: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00591.txt.bz2 Ping^2 thanks --Don > -----Original Message----- > From: gdb-patches-owner@sourceware.org [mailto:gdb-patches- > owner@sourceware.org] On Behalf Of Breazeal, Don > Sent: Wednesday, April 16, 2014 9:45 AM > To: gdb-patches@sourceware.org > Subject: RE: [PATCH 0/4] Exec events in gdbserver on Linux >=20 > 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 >=20 > The documentation piece was previously approved: > https://sourceware.org/ml/gdb-patches/2014-04/msg00071.html >=20 > Thanks, > --Don >=20 >=20 > > -----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(-)