write_pieced_value: Notify memory_changed observers
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 13 Jun 2017 13:20:32 +0000 (15:20 +0200)
committerAndreas Arnez <arnez@linux.vnet.ibm.com>
Tue, 13 Jun 2017 13:20:32 +0000 (15:20 +0200)
So far write_pieced_value uses write_memory when writing memory pieces to
the target.  However, this is a case where GDB potentially overwrites a
watchpoint value.  In such a case write_memory_with_notification should be
used instead, so that memory_changed observers get notified.

gdb/ChangeLog:

* dwarf2loc.c (write_pieced_value): When writing the data for a
memory piece, use write_memory_with_notification instead of
write_memory.

gdb/ChangeLog
gdb/dwarf2loc.c

index b4a9943..c876c05 100644 (file)
@@ -1,5 +1,11 @@
 2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
 
+       * dwarf2loc.c (write_pieced_value): When writing the data for a
+       memory piece, use write_memory_with_notification instead of
+       write_memory.
+
+2017-06-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
        * valops.c (read_value_memory): Change embedded_offset to
        represent a bit offset instead of a byte offset.
        * value.h (read_value_memory): Adjust comment.
index ed5b29c..94175ef 100644 (file)
@@ -2025,9 +2025,9 @@ write_pieced_value (struct value *to, struct value *from)
                && offset % 8 == 0)
              {
                /* Everything is byte-aligned; no buffer needed.  */
-               write_memory (start_addr,
-                             contents + offset / 8,
-                             this_size_bits / 8);
+               write_memory_with_notification (start_addr,
+                                               contents + offset / 8,
+                                               this_size_bits / 8);
                break;
              }
 
@@ -2054,7 +2054,8 @@ write_pieced_value (struct value *to, struct value *from)
            copy_bitwise (buffer.data (), bits_to_skip % 8,
                          contents, offset,
                          this_size_bits, bits_big_endian);
-           write_memory (start_addr, buffer.data (), this_size);
+           write_memory_with_notification (start_addr, buffer.data (),
+                                           this_size);
          }
          break;
        default: