From patchwork Fri Apr 17 20:58:45 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Don Breazeal X-Patchwork-Id: 6312 Received: (qmail 112400 invoked by alias); 17 Apr 2015 21:00:28 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 112383 invoked by uid 89); 17 Apr 2015 21:00:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_LOW, SPF_PASS 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; Fri, 17 Apr 2015 21:00:25 +0000 Received: from svr-orw-fem-03.mgc.mentorg.com ([147.34.97.39]) by relay1.mentorg.com with esmtp id 1YjDN7-0005wF-SY from Don_Breazeal@mentor.com ; Fri, 17 Apr 2015 14:00:21 -0700 Received: from build4-lucid-cs (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.3.224.2; Fri, 17 Apr 2015 14:00:21 -0700 Received: by build4-lucid-cs (Postfix, from userid 1905) id D574240F73; Fri, 17 Apr 2015 14:00:20 -0700 (PDT) From: Don Breazeal To: , Subject: [PATCH v8 7/7] Extended-remote follow fork documentation Date: Fri, 17 Apr 2015 13:58:45 -0700 Message-ID: <1429304325-13878-8-git-send-email-donb@codesourcery.com> In-Reply-To: <1429304325-13878-1-git-send-email-donb@codesourcery.com> References: <1429304325-13878-1-git-send-email-donb@codesourcery.com> MIME-Version: 1.0 X-IsSubscribed: yes This patch contains the accumulated documentation changes for the rest of the extended-remote follow fork patchset. On 4/15/2015 8:46 AM, Pedro Alves wrote: > On 04/10/2015 09:43 PM, Don Breazeal wrote: > >> @tab @code{hbreak} >> >> +@item @code{fork-event-feature} >> +@tab @code{fork stop reason} >> +@tab @code{fork} >> + >> +@item @code{vfork-event-feature} >> +@tab @code{vfork stop reason} >> +@tab @code{vfork} >> + >> @end multitable >> >> @node Remote Stub >> @@ -35286,6 +35297,45 @@ The @var{r} part must be left empty. >> >> The same remarks about @samp{qSupported} and non-stop mode above >> apply. >> + >> +@cindex fork events, remote reply >> +@item fork >> +The packet indicates that @code{fork} was called, and @var{r} >> +is the ptid of the new child process. This packet is only > > I don't think we document what a ptid is --- that's an internal > gdb implementation detail. This should probably say that it's the > thread id of the new child process, and cross reference > to "thread-id syntax". I've made this change. > >> +applicable to targets that support fork events. > > Thanks, > Pedro Alves > Thanks --Don gdb/ 2015-04-17 Don Breazeal * NEWS: Announce fork support in the RSP and support for fork debugging in extended mode. gdb/doc/ 2015-04-17 Don Breazeal * gdb.texinfo (Forks): Note that fork debugging is supported in extended mode. (Remote Configuration): Add fork event features to table of packet settings. (Stop Reply Packets): Add fork events to list of stop reasons. (General Query Packets): Add fork events to tables of 'gdbfeatures' and 'stub features' supported in the qSupported packet, as well as to the list containing stub feature details. --- gdb/NEWS | 24 ++++++++++++++++ gdb/doc/gdb.texinfo | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+) diff --git a/gdb/NEWS b/gdb/NEWS index c24195e..93da9e9 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -101,6 +101,30 @@ hwbreak stop reason vFile:fstat: Return information about files on the remote system. +fork stop reason + Indicates that a fork system call was executed. + +vfork stop reason + Indicates that a vfork system call was executed. + +vforkdone stop reason + Indicates that a vfork child of the specified process has executed + an exec or exit, allowing the vfork parent to resume execution. + +fork-events and vfork-events features in qSupported + The qSupported packet allows GDB to request support for fork and + vfork events using new 'gdbfeatures' fork-events and vfork-events, + and the qSupported response can contain the corresponding + 'stubfeatures'. Set and show commands can be used to display + whether these features are enabled. + +* Extended-remote fork events + + ** GDB now has support for fork events on extended-remote Linux + targets. For targets with Linux kernels 2.5.60 and later, this + enables follow-fork-mode and detach-on-fork for both fork and + vfork, as well as fork and vfork catchpoints. + * The info record command now shows the recording format and the branch tracing configuration for the current thread when using the btrace record target. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 6255c14..688f594 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -3135,6 +3135,9 @@ create additional processes using the @code{fork} or @code{vfork} functions. Currently, the only platforms with this feature are HP-UX (11.x and later only?) and @sc{gnu}/Linux (kernel version 2.5.60 and later). +The fork debugging commands are supported in both native mode and when +connected to @code{gdbserver} using @kbd{target extended-remote}. + By default, when a program forks, @value{GDBN} will continue to debug the parent process and the child process will run unimpeded. @@ -19919,6 +19922,14 @@ are: @tab @code{hwbreak stop reason} @tab @code{hbreak} +@item @code{fork-event-feature} +@tab @code{fork stop reason} +@tab @code{fork} + +@item @code{vfork-event-feature} +@tab @code{vfork stop reason} +@tab @code{vfork} + @end multitable @node Remote Stub @@ -35357,6 +35368,49 @@ The @var{r} part must be left empty. The same remarks about @samp{qSupported} and non-stop mode above apply. + +@cindex fork events, remote reply +@item fork +The packet indicates that @code{fork} was called, and @var{r} +is the thread ID of the new child process. Refer to +@ref{thread-id syntax} for the format of the @var{thread-id} +field. This packet is only applicable to targets that support +fork events. + +This packet should not be sent by default; older @value{GDBN} versions +did not support it. @value{GDBN} requests it, by supplying an +appropriate @samp{qSupported} feature (@pxref{qSupported}). The +remote stub must also supply the appropriate @samp{qSupported} feature +indicating support. + +@cindex vfork events, remote reply +@item vfork +The packet indicates that @code{vfork} was called, and @var{r} +is the thread ID of the new child process. Refer to +@ref{thread-id syntax} for the format of the @var{thread-id} +field. This packet is only applicable to targets that support +vfork events. + +This packet should not be sent by default; older @value{GDBN} versions +did not support it. @value{GDBN} requests it, by supplying an +appropriate @samp{qSupported} feature (@pxref{qSupported}). The +remote stub must also supply the appropriate @samp{qSupported} feature +indicating support. + +@cindex vforkdone events, remote reply +@item vforkdone +The packet indicates that a child process created by a vfork +has either called @code{exec} or terminated, so that the +address spaces of the parent and child process are no longer +shared. The @var{r} part is ignored. This packet is only +applicable to targets that support vforkdone events. + +This packet should not be sent by default; older @value{GDBN} versions +did not support it. @value{GDBN} requests it, by supplying an +appropriate @samp{qSupported} feature (@pxref{qSupported}). The +remote stub must also supply the appropriate @samp{qSupported} feature +indicating support. + @end table @item W @var{AA} @@ -35949,6 +36003,18 @@ reason in stop replies. @xref{swbreak stop reason}, for details. @item hwbreak This feature indicates whether @value{GDBN} supports the hwbreak stop reason in stop replies. @xref{swbreak stop reason}, for details. + +@item fork-events +This feature indicates whether @value{GDBN} supports fork event +extensions to the remote protocol. @value{GDBN} does not use such +extensions unless the stub also reports that it supports them by +including @samp{fork-events+} in its @samp{qSupported} reply. + +@item vfork-events +This feature indicates whether @value{GDBN} supports vfork event +extensions to the remote protocol. @value{GDBN} does not use such +extensions unless the stub also reports that it supports them by +including @samp{vfork-events+} in its @samp{qSupported} reply. @end table Stubs should ignore any unknown values for @@ -36187,6 +36253,16 @@ These are the currently defined stub features and their properties: @tab @samp{-} @tab No +@item @samp{fork-events} +@tab No +@tab @samp{-} +@tab No + +@item @samp{vfork-events} +@tab No +@tab @samp{-} +@tab No + @end multitable These are the currently defined stub features, in more detail: @@ -36375,6 +36451,13 @@ breakpoints. The remote stub reports the @samp{hwbreak} stop reason for hardware breakpoints. +@item fork-events +The remote stub reports the @samp{fork} stop reason for fork events. + +@item vfork-events +The remote stub reports the @samp{vfork} stop reason for vfork events +and vforkdone events. + @end table @item qSymbol::