From f65e204425b5b46a5927d9501c42f25d98a866ce Mon Sep 17 00:00:00 2001 From: Andreas Arnez Date: Tue, 13 Jun 2017 15:20:32 +0200 Subject: [PATCH] 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. --- gdb/ChangeLog | 6 ++++++ gdb/dwarf2loc.c | 9 +++++---- 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 + * 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 + * 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: -- 2.7.4