aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Arnez <arnez@linux.vnet.ibm.com>2017-06-13 15:20:32 +0200
committerAndreas Arnez <arnez@linux.vnet.ibm.com>2017-06-13 15:20:32 +0200
commitf65e204425b5b46a5927d9501c42f25d98a866ce (patch)
tree3a426d34814a6c2a88abfe6b4894f43f65156b49
parent23f945bf8cebf348154aff43782de2e1977e9230 (diff)
downloadgdb-f65e204425b5b46a5927d9501c42f25d98a866ce.zip
gdb-f65e204425b5b46a5927d9501c42f25d98a866ce.tar.gz
gdb-f65e204425b5b46a5927d9501c42f25d98a866ce.tar.bz2
write_pieced_value: Notify memory_changed observers
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.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2loc.c9
2 files changed, 11 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b4a9943..c876c05 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index ed5b29c..94175ef 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -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: