diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2019-04-01 19:08:47 +0000 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2019-04-01 19:08:47 +0000 |
commit | 62bcf736834247905166c4755aa7e71768ac3a1c (patch) | |
tree | 19006cadc28facfff4cbcdc53cc6ba72e7899980 /lldb/source/Target/Process.cpp | |
parent | 4307172b8413fd40a63cd9adf54973e641a891ba (diff) | |
download | bcm5719-llvm-62bcf736834247905166c4755aa7e71768ac3a1c.tar.gz bcm5719-llvm-62bcf736834247905166c4755aa7e71768ac3a1c.zip |
[Process] Fix WriteMemory return value
Summary:
In case of a breakpoint site overlapping with the destination address,
the WriteMemory method reported an incorrect memory size.
Instead of returning the right amount of bytes written, it falls through
the scope and returned 0.
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Reviewers: jasonmolenda, friss, jingham
Subscribers: JDevlieghere, davide, lldb-commits, #lldb
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D60022
llvm-svn: 357420
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 15fcd8bb9c2..e01def92666 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -2261,8 +2261,9 @@ size_t Process::WriteMemory(addr_t addr, const void *buf, size_t size, }); if (bytes_written < size) - WriteMemoryPrivate(addr + bytes_written, ubuf + bytes_written, - size - bytes_written, error); + return bytes_written + WriteMemoryPrivate(addr + bytes_written, + ubuf + bytes_written, + size - bytes_written, error); } } else { return WriteMemoryPrivate(addr, buf, size, error); |