[RFA]: Change to_stopped_data_address ABI

Jeff Johnston jjohnstn@redhat.com
Wed Oct 6 20:47:00 GMT 2004


The attached patches address your comments below.  Ok now?

-- Jeff J.

Eli Zaretskii wrote:
>>Date: Fri, 24 Sep 2004 18:41:53 -0400
>>From: Jeff Johnston <jjohnstn@redhat.com>
>>Cc: gdb-patches@sources.redhat.com
> 
> 
> Sorry for a late response.
> 
> 
>>Andrew/Eli, ok to commit?  Did I miss anything?
> 
> 
> Thanks, most of the concerns I had with your original patch are now
> gone.  Still, a few minor ones remain, see below.
> 
> 
>>+int
>>+frv_stopped_data_address (CORE_ADDR *addr_p)
>> {
>>   CORE_ADDR brr, dbar0, dbar1, dbar2, dbar3;
>> 
>>@@ -1305,15 +1305,27 @@ frv_stopped_data_address (void)
>>   dbar3 = read_register (dbar3_regnum);
>> 
>>   if (brr & (1<<11))
>>-    return dbar0;
>>+    *addr_p = dbar0;
>>   else if (brr & (1<<10))
>>-    return dbar1;
>>+    *addr_p = dbar1;
>>   else if (brr & (1<<9))
>>-    return dbar2;
>>+    *addr_p = dbar2;
>>   else if (brr & (1<<8))
>>-    return dbar3;
>>+    *addr_p = dbar3;
>>   else
>>-    return 0;
>>+    {
>>+      *addr_p = 0;
>>+      return 0;
>>+    }
>>+
>>+  return 1;
>>+}
> 
> 
> I don't understand why do you put a zero into the address pointed by
> addr_p in the case that no watchpoint has fired.  It is customary to
> leave the arguments unaltered in such cases.  isn't it enough that you
> return a zero as the function's value?
> 
> Similar code is in the other functions that return the stopped data
> address; I have similar issue with them.
> 
> 
>>RCS file: /cvs/src/src/gdb/config/i386/nm-i386.h,v
>>retrieving revision 1.6
>>diff -u -p -r1.6 nm-i386.h
>>--- config/i386/nm-i386.h	13 Sep 2004 14:06:03 -0000	1.6
>>+++ config/i386/nm-i386.h	24 Sep 2004 22:34:27 -0000
>>@@ -47,10 +47,10 @@ extern int i386_region_ok_for_watchpoint
>>    triggered.  */
>> extern int i386_stopped_by_hwbp (void);
>> 
>>-/* If the inferior has some break/watchpoint that triggered, return
>>+/* If the inferior has some break/watchpoint that triggered, set
>>    the address associated with that break/watchpoint.  Otherwise,
>>-   return zero.  */
>>-extern CORE_ADDR i386_stopped_data_address (void);
>>+   set the watchpoint address to zero.  Always return true.  */
> 
> 
> The last sentence is not true: we return zero (false) sometimes.
> 
> 
>>+@findex i386_stopped_by_watchpoint
>>+@item i386_stopped_by_watchpoint (void)
>>+The macro @code{STOPPED_BY_WATCHPOINT}
>>+is set to call this function.  The
>>+argument passed to @code{STOPPED_BY_WATCHPOINT} is ignored.  This
>>+function uses the same logic as @code{i386_stopped_data_address}.
> 
> 
> I'd prefer if we describe the operation of i386_stopped_by_watchpoint
> explicitly, not by a reference to the logic of i386_stopped_data_address.
> 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sda.patch2
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20041006/b96c075e/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: doc.patch2
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20041006/b96c075e/attachment-0001.ksh>


More information about the Gdb-patches mailing list