* remote.c (remote_insert_hw_breakpoint)
authorGrace Sainsbury <graces@redhat.com>
Fri, 16 Aug 2002 14:52:12 +0000 (14:52 +0000)
committerGrace Sainsbury <graces@redhat.com>
Fri, 16 Aug 2002 14:52:12 +0000 (14:52 +0000)
(remote_remove_hw_breakpoint): Fix calculation of length field
for Z-packet.

gdb/ChangeLog
gdb/remote.c

index b919efe..fca02ec 100644 (file)
@@ -1,3 +1,9 @@
+2002-08-16  Grace Sainsbury  <graces@redhat.com>
+
+       * remote.c (remote_insert_hw_breakpoint)
+       (remote_remove_hw_breakpoint): Fix calculation of length field
+       for Z-packet.
+
 2002-08-15  Michael Snyder  <msnyder@redhat.com>
 
        * irix5-nat.c (supply_gregset): Allocate plenty-big buffer
index 0c3f23a..de64cc0 100644 (file)
@@ -4985,11 +4985,11 @@ remote_insert_hw_breakpoint (CORE_ADDR addr, char *shadow)
   char *buf = alloca (rs->remote_packet_size);
   char *p = buf;
       
-  /* The length field should be set to soething so that the packet is
-     well formed.  */
+  /* The length field should be set to the size of a breakpoint
+     instruction.  */
+
+  BREAKPOINT_FROM_PC (&addr, &len);  
 
-  len = strlen (shadow);
-  len = len ? len : 1;
   if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
     error ("Can't set hardware breakpoint without the '%s' (%s) packet\n",
           remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,
@@ -5026,8 +5026,12 @@ remote_remove_hw_breakpoint (CORE_ADDR addr, char *shadow)
   struct remote_state *rs = get_remote_state ();
   char *buf = alloca (rs->remote_packet_size);
   char *p = buf;
-  
-  len = sizeof (shadow);
+
+  /* The length field should be set to the size of a breakpoint
+     instruction.  */
+
+  BREAKPOINT_FROM_PC (&addr, &len);
+
   if (remote_protocol_Z[Z_PACKET_HARDWARE_BP].support == PACKET_DISABLE)
     error ("Can't clear hardware breakpoint without the '%s' (%s) packet\n",
           remote_protocol_Z[Z_PACKET_HARDWARE_BP].name,