Hi, This is a resubmission of a patch I posted long ago: http://sourceware.org/ml/gdb-patches/2009-05/msg00670.html It's good on its own, but is also important for ranged watchpoints in our ppc476 support patches. Here's my original explanation: Right now, GDB calls value_equal when comparing the old and new values of a watchpoint. IMO this is not correct, since that function will call coerce_array and effectively just compare the addresses of arrays being watched. This patch introduces a new value comparison function which works in the mentioned case, and a testcase which fails without the patch and passes with it. Tromey had approved it here: http://sourceware.org/ml/gdb-patches/2009-06/msg00076.html But I don't know if approvals expire or not, so... This version addresses Tromey's comments. -- []'s Thiago Jung Bauermann IBM Linux Technology Center gdb/ * valarith.c (value_equal_contents): New function. * value.h (value_equal_contents): Declare. * breakpoint.c (watchpoint_check): Use value_equal_contents instead of value_equal. gdb/testsuite/ * gdb.base/watchpoint.exp (test_watchpoint_in_big_blob): New function. (top level): Call test_watchpoint_in_big_blob. * gdb.base/watchpoint.c (buf): Change size to value too big for hardware watchpoints. (func3): Write to buf.