From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5413 invoked by alias); 16 Apr 2014 16:44:52 -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 5401 invoked by uid 89); 16 Apr 2014 16:44:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00 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; Wed, 16 Apr 2014 16:44:50 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1WaSx4-00004l-4Z from donb@codesourcery.com for gdb-patches@sourceware.org; Wed, 16 Apr 2014 09:44:46 -0700 Received: from SVR-ORW-FEM-02.mgc.mentorg.com ([147.34.96.206]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Wed, 16 Apr 2014 09:44:45 -0700 Received: from NA-MBX-02.mgc.mentorg.com ([169.254.2.230]) by SVR-ORW-FEM-02.mgc.mentorg.com ([147.34.96.168]) with mapi id 14.02.0247.003; Wed, 16 Apr 2014 09:44:45 -0700 From: "Breazeal, Don" To: "gdb-patches@sourceware.org" Subject: RE: [PATCH 0/4] Exec events in gdbserver on Linux Date: Wed, 16 Apr 2014 16:44: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/msg00319.txt.bz2 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 >=20 > 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.) >=20 > 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. >=20 > - 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. >=20 > 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. >=20 > 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. >=20 > More detailed explanations of these issues is included in the patch 2/4 > email. >=20 > My intent is to follow up with implementations of remote fork/vfork > events and associated catchpoints. >=20 > --Don >=20 > 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(-)