From ca6eff59089ff1a1772ac95d4890f94b3eef2796 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 26 Oct 2016 11:08:27 +0100 Subject: [PATCH] gdb/doc: Clarify vCont packet description Specifically, what happens with multiple actions that could match a thread, and what happens when we get a vCont action that matches a thread that was already running. E.g., what does: "vCont;s:2" "vCont;s:1;c" mean for thread 2. (Thread 2 continues stepping.) gdb/doc/ChangeLog: 2016-10-26 Pedro Alves * gdb.texinfo (Packets): Clarify vCont packets with multiple actions that match a thread, and what happens when an action matches a thread that is already running. --- gdb/doc/ChangeLog | 6 ++++++ gdb/doc/gdb.texinfo | 32 +++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 4f4ce5c049..5e87ac45cd 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,9 @@ +2016-10-26 Pedro Alves + + * gdb.texinfo (Packets): Clarify vCont packets with multiple + actions that match a thread, and what happens when an action + matches a thread that is already running. + 2016-10-14 Simon Marchi * gdb.texinfo (Using Trace Files): Fix typo. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index b3eb4885cf..d636a16f8b 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -35530,13 +35530,17 @@ for success in non-stop mode (@pxref{Remote Non-Stop}) @cindex @samp{vCont} packet @anchor{vCont packet} Resume the inferior, specifying different actions for each thread. -If an action is specified with no @var{thread-id}, then it is applied to any -threads that don't have a specific action specified; if no default action is -specified then other threads should remain stopped in all-stop mode and -in their current state in non-stop mode. -Specifying multiple -default actions is an error; specifying no actions is also an error. -Thread IDs are specified using the syntax described in @ref{thread-id syntax}. + +For each inferior thread, the leftmost action with a matching +@var{thread-id} is applied. Threads that don't match any action +remain in their current state. Thread IDs are specified using the +syntax described in @ref{thread-id syntax}. If multiprocess +extensions (@pxref{multiprocess extensions}) are supported, actions +can be specified to match all threads in a process by using the +@samp{p@var{pid}.-1} form of the @var{thread-id}. An action with no +@var{thread-id} is called the default action and matches all threads. +Specifying multiple default actions is an error; specifying no actions +is also an error. Currently supported actions are: @@ -35581,11 +35585,17 @@ the corresponding stop reply should indicate that the thread has stopped with signal @samp{0}, regardless of whether the target uses some other signal as an implementation detail. +The server must ignore @samp{c}, @samp{C}, @samp{s}, @samp{S}, and +@samp{r} actions for threads that are already running. Conversely, +the server must ignore @samp{t} actions for threads that are already +stopped. + +@emph{Note:} In non-stop mode, a thread is considered running until +@value{GDBN} acknowleges an asynchronous stop notification for it with +the @samp{vStopped} packet (@pxref{Remote Non-Stop}). + The stub must support @samp{vCont} if it reports support for -multiprocess extensions (@pxref{multiprocess extensions}). Note that in -this case @samp{vCont} actions can be specified to apply to all threads -in a process by using the @samp{p@var{pid}.-1} form of the -@var{thread-id}. +multiprocess extensions (@pxref{multiprocess extensions}). Reply: @xref{Stop Reply Packets}, for the reply specifications.