gdbserver/s390: Advertise Z0 packet support.

Message ID 1454852905-17184-1-git-send-email-koriakin@0x04.net
State New, archived
Headers

Commit Message

Marcin Kościelnicki Feb. 7, 2016, 1:48 p.m. UTC
  This is necessary for upcoming tracepoint support - otherwise, setting
a tracepoint and a breakpoint on the same address will fail, since gdbserver
won't know about gdb's breakpoint.

Tested on s390x-ibm-linux-gnu and s390-ibm-linux-gnu, RHEL 7.2.

gdb/gdbserver/ChangeLog:

	* linux-s390-low.c (s390_supports_z_point_type): New function.
	(struct linux_target_ops): Wire s390_supports_z_point_type in.
---
I've added missing comment.  Ping?

 gdb/gdbserver/ChangeLog        |  5 +++++
 gdb/gdbserver/linux-s390-low.c | 18 +++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletion(-)
  

Comments

Marcin Kościelnicki Feb. 15, 2016, 1:43 p.m. UTC | #1
Ping

On 07/02/16 14:48, Marcin Kościelnicki wrote:
> This is necessary for upcoming tracepoint support - otherwise, setting
> a tracepoint and a breakpoint on the same address will fail, since gdbserver
> won't know about gdb's breakpoint.
>
> Tested on s390x-ibm-linux-gnu and s390-ibm-linux-gnu, RHEL 7.2.
>
> gdb/gdbserver/ChangeLog:
>
> 	* linux-s390-low.c (s390_supports_z_point_type): New function.
> 	(struct linux_target_ops): Wire s390_supports_z_point_type in.
> ---
> I've added missing comment.  Ping?
>
>   gdb/gdbserver/ChangeLog        |  5 +++++
>   gdb/gdbserver/linux-s390-low.c | 18 +++++++++++++++++-
>   2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
> index fd49585..254341c 100644
> --- a/gdb/gdbserver/ChangeLog
> +++ b/gdb/gdbserver/ChangeLog
> @@ -1,5 +1,10 @@
>   2016-02-07  Marcin Kościelnicki  <koriakin@0x04.net>
>
> +	* linux-s390-low.c (s390_supports_z_point_type): New function.
> +	(struct linux_target_ops): Wire s390_supports_z_point_type in.
> +
> +2016-02-07  Marcin Kościelnicki  <koriakin@0x04.net>
> +
>   	* tracepoint.c (struct tracepoint_action_ops): Removed.
>   	(struct tracepoint_action): Removed ops field.
>   	(struct collect_registers_action): Removed.
> diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c
> index 63728aa..533e384 100644
> --- a/gdb/gdbserver/linux-s390-low.c
> +++ b/gdb/gdbserver/linux-s390-low.c
> @@ -609,6 +609,22 @@ s390_breakpoint_at (CORE_ADDR pc)
>     return memcmp (c, s390_breakpoint, s390_breakpoint_len) == 0;
>   }
>
> +/* Breakpoint/Watchpoint support.  */
> +
> +/* The "supports_z_point_type" linux_target_ops method.  */
> +
> +static int
> +s390_supports_z_point_type (char z_type)
> +{
> +  switch (z_type)
> +    {
> +    case Z_PACKET_SW_BP:
> +      return 1;
> +    default:
> +      return 0;
> +    }
> +}
> +
>   /* Support for hardware single step.  */
>
>   static int
> @@ -687,7 +703,7 @@ struct linux_target_ops the_low_target = {
>     NULL,
>     s390_breakpoint_len,
>     s390_breakpoint_at,
> -  NULL,  /* supports_z_point_type */
> +  s390_supports_z_point_type,
>     NULL,
>     NULL,
>     NULL,
>
  
Andreas Arnez Feb. 17, 2016, 9:18 a.m. UTC | #2
On Mon, Feb 15 2016, Marcin Kościelnicki wrote:

> Ping
>
> On 07/02/16 14:48, Marcin Kościelnicki wrote:
>> This is necessary for upcoming tracepoint support - otherwise, setting
>> a tracepoint and a breakpoint on the same address will fail, since gdbserver
>> won't know about gdb's breakpoint.
>>
>> Tested on s390x-ibm-linux-gnu and s390-ibm-linux-gnu, RHEL 7.2.
>>
>> gdb/gdbserver/ChangeLog:
>>
>> 	* linux-s390-low.c (s390_supports_z_point_type): New function.
>> 	(struct linux_target_ops): Wire s390_supports_z_point_type in.
>> ---
>> I've added missing comment.  Ping?

This is OK.

Thanks,
Andreas
  
Marcin Kościelnicki Feb. 17, 2016, 9:48 a.m. UTC | #3
On 17/02/16 10:18, Andreas Arnez wrote:
> On Mon, Feb 15 2016, Marcin Kościelnicki wrote:
>
>> Ping
>>
>> On 07/02/16 14:48, Marcin Kościelnicki wrote:
>>> This is necessary for upcoming tracepoint support - otherwise, setting
>>> a tracepoint and a breakpoint on the same address will fail, since gdbserver
>>> won't know about gdb's breakpoint.
>>>
>>> Tested on s390x-ibm-linux-gnu and s390-ibm-linux-gnu, RHEL 7.2.
>>>
>>> gdb/gdbserver/ChangeLog:
>>>
>>> 	* linux-s390-low.c (s390_supports_z_point_type): New function.
>>> 	(struct linux_target_ops): Wire s390_supports_z_point_type in.
>>> ---
>>> I've added missing comment.  Ping?
>
> This is OK.
>
> Thanks,
> Andreas
>

Thanks, pushed.
  

Patch

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index fd49585..254341c 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,10 @@ 
 2016-02-07  Marcin Kościelnicki  <koriakin@0x04.net>
 
+	* linux-s390-low.c (s390_supports_z_point_type): New function.
+	(struct linux_target_ops): Wire s390_supports_z_point_type in.
+
+2016-02-07  Marcin Kościelnicki  <koriakin@0x04.net>
+
 	* tracepoint.c (struct tracepoint_action_ops): Removed.
 	(struct tracepoint_action): Removed ops field.
 	(struct collect_registers_action): Removed.
diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c
index 63728aa..533e384 100644
--- a/gdb/gdbserver/linux-s390-low.c
+++ b/gdb/gdbserver/linux-s390-low.c
@@ -609,6 +609,22 @@  s390_breakpoint_at (CORE_ADDR pc)
   return memcmp (c, s390_breakpoint, s390_breakpoint_len) == 0;
 }
 
+/* Breakpoint/Watchpoint support.  */
+
+/* The "supports_z_point_type" linux_target_ops method.  */
+
+static int
+s390_supports_z_point_type (char z_type)
+{
+  switch (z_type)
+    {
+    case Z_PACKET_SW_BP:
+      return 1;
+    default:
+      return 0;
+    }
+}
+
 /* Support for hardware single step.  */
 
 static int
@@ -687,7 +703,7 @@  struct linux_target_ops the_low_target = {
   NULL,
   s390_breakpoint_len,
   s390_breakpoint_at,
-  NULL,  /* supports_z_point_type */
+  s390_supports_z_point_type,
   NULL,
   NULL,
   NULL,