[1/2] Add "set remote multiprocess-extensions-packet" command

Message ID 1440436237-24015-2-git-send-email-palves@redhat.com
State New, archived
Headers

Commit Message

Pedro Alves Aug. 24, 2015, 5:10 p.m. UTC
  Being able to force-disable the RSP multiprocess extensions is useful
for testing.

gdb/ChangeLog:
2015-08-24  Pedro Alves  <palves@redhat.com>

	* NEWS (New commands): Mention set/show remote
	multiprocess-extensions-packet.
	* remote.c (remote_query_supported): Only tell the server to use
	the multiprocess extensions if the user hasn't force-disabled them
	with "set remote multiprocess-extensions-packet off".

gdb/doc/ChangeLog:
2015-08-24  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Remote Configuration): Document the "set/show
	remote multiprocess-extensions-packet" commands.
---
 gdb/NEWS            | 4 ++++
 gdb/doc/gdb.texinfo | 4 ++++
 gdb/remote.c        | 7 +++++--
 3 files changed, 13 insertions(+), 2 deletions(-)
  

Comments

Eli Zaretskii Aug. 24, 2015, 5:28 p.m. UTC | #1
> From: Pedro Alves <palves@redhat.com>
> Date: Mon, 24 Aug 2015 18:10:36 +0100
> 
> +set remote multiprocess-extensions-packet
> +show remote multiprocess-extensions--packet
                                      ^^
Extra hyphen.

> gdb/doc/ChangeLog:
> 2015-08-24  Pedro Alves  <palves@redhat.com>
> 
> 	* gdb.texinfo (Remote Configuration): Document the "set/show
> 	remote multiprocess-extensions-packet" commands.

What the ChangeLog entry promises the text doesn't keep:

> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 5dfb14b..cd0abad 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -20205,6 +20205,10 @@ are:
>  @tab @code{Z0 and Z1}
>  @tab @code{Support for target-side breakpoint condition evaluation}
>  
> +@item @code{multiprocess-extensions}
> +@tab @code{multiprocess extensions}
> +@tab Debug multiple processes and remote process PID awareness
> +
>  @item @code{swbreak-feature}
>  @tab @code{swbreak stop reason}
>  @tab @code{break}

Thanks.
  
Pedro Alves Aug. 24, 2015, 5:31 p.m. UTC | #2
On 08/24/2015 06:28 PM, Eli Zaretskii wrote:

>> gdb/doc/ChangeLog:
>> 2015-08-24  Pedro Alves  <palves@redhat.com>
>>
>> 	* gdb.texinfo (Remote Configuration): Document the "set/show
>> 	remote multiprocess-extensions-packet" commands.
> 
> What the ChangeLog entry promises the text doesn't keep:

AFAIK, that's really all there is to document this kind of
set remote foo-packet commands.  Above that table we have:

For each packet @var{name}, the command to enable or disable the
packet is @code{set remote @var{name}-packet}.  The available settings
are:

@multitable @columnfractions 0.28 0.32 0.25
@item Command Name
@tab Remote Packet
@tab Related Features

Thanks,
Pedro Alves

> 
>> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
>> index 5dfb14b..cd0abad 100644
>> --- a/gdb/doc/gdb.texinfo
>> +++ b/gdb/doc/gdb.texinfo
>> @@ -20205,6 +20205,10 @@ are:
>>  @tab @code{Z0 and Z1}
>>  @tab @code{Support for target-side breakpoint condition evaluation}
>>  
>> +@item @code{multiprocess-extensions}
>> +@tab @code{multiprocess extensions}
>> +@tab Debug multiple processes and remote process PID awareness
>> +
>>  @item @code{swbreak-feature}
>>  @tab @code{swbreak stop reason}
>>  @tab @code{break}
> 
> Thanks.
>
  
Eli Zaretskii Aug. 24, 2015, 5:34 p.m. UTC | #3
> Date: Mon, 24 Aug 2015 18:31:08 +0100
> From: Pedro Alves <palves@redhat.com>
> CC: gdb-patches@sourceware.org
> 
> On 08/24/2015 06:28 PM, Eli Zaretskii wrote:
> 
> >> gdb/doc/ChangeLog:
> >> 2015-08-24  Pedro Alves  <palves@redhat.com>
> >>
> >> 	* gdb.texinfo (Remote Configuration): Document the "set/show
> >> 	remote multiprocess-extensions-packet" commands.
> > 
> > What the ChangeLog entry promises the text doesn't keep:
> 
> AFAIK, that's really all there is to document this kind of
> set remote foo-packet commands.  Above that table we have:
> 
> For each packet @var{name}, the command to enable or disable the
> packet is @code{set remote @var{name}-packet}.

Strange habit, but who am I to object?

Thanks.
  

Patch

diff --git a/gdb/NEWS b/gdb/NEWS
index 9edfd5e..cc1866f 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -28,6 +28,10 @@  set debug bfd-cache
 show debug bfd-cache
   Control display of debugging info regarding bfd caching.
 
+set remote multiprocess-extensions-packet
+show remote multiprocess-extensions--packet
+  Set/show the use of the remote protocol multiprocess extensions.
+
 * The "disassemble" command accepts a new modifier: /s.
   It prints mixed source+disassembly like /m with two differences:
   - disassembled instructions are now printed in program order, and
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 5dfb14b..cd0abad 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -20205,6 +20205,10 @@  are:
 @tab @code{Z0 and Z1}
 @tab @code{Support for target-side breakpoint condition evaluation}
 
+@item @code{multiprocess-extensions}
+@tab @code{multiprocess extensions}
+@tab Debug multiple processes and remote process PID awareness
+
 @item @code{swbreak-feature}
 @tab @code{swbreak stop reason}
 @tab @code{break}
diff --git a/gdb/remote.c b/gdb/remote.c
index 12294bc..a06037f 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -4352,7 +4352,8 @@  remote_query_supported (void)
       char *q = NULL;
       struct cleanup *old_chain = make_cleanup (free_current_contents, &q);
 
-      q = remote_query_supported_append (q, "multiprocess+");
+      if (packet_set_cmd_state (PACKET_multiprocess_feature) != AUTO_BOOLEAN_FALSE)
+	q = remote_query_supported_append (q, "multiprocess+");
 
       if (packet_set_cmd_state (PACKET_swbreak_feature) != AUTO_BOOLEAN_FALSE)
 	q = remote_query_supported_append (q, "swbreak+");
@@ -13231,6 +13232,9 @@  Show the maximum size of the address (in bits) in a memory packet."), NULL,
   add_packet_config_cmd (&remote_protocol_packets[PACKET_Qbtrace_conf_bts_size],
        "Qbtrace-conf:bts:size", "btrace-conf-bts-size", 0);
 
+  add_packet_config_cmd (&remote_protocol_packets[PACKET_multiprocess_feature],
+       "multiprocess-feature", "multiprocess-feature", 0);
+
   add_packet_config_cmd (&remote_protocol_packets[PACKET_swbreak_feature],
                          "swbreak-feature", "swbreak-feature", 0);
 
@@ -13260,7 +13264,6 @@  Show the maximum size of the address (in bits) in a memory packet."), NULL,
 	switch (i)
 	  {
 	  case PACKET_QNonStop:
-	  case PACKET_multiprocess_feature:
 	  case PACKET_EnableDisableTracepoints_feature:
 	  case PACKET_tracenz_feature:
 	  case PACKET_DisconnectedTracing_feature: