From 62bcf736834247905166c4755aa7e71768ac3a1c Mon Sep 17 00:00:00 2001 From: Med Ismail Bennani Date: Mon, 1 Apr 2019 19:08:47 +0000 Subject: [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 Reviewers: jasonmolenda, friss, jingham Subscribers: JDevlieghere, davide, lldb-commits, #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D60022 llvm-svn: 357420 --- .../gdb_remote_client/TestWriteMemory.py | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestWriteMemory.py (limited to 'lldb/packages/Python/lldbsuite/test/functionalities') diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestWriteMemory.py b/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestWriteMemory.py new file mode 100644 index 00000000000..812dbf7aa8e --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/functionalities/gdb_remote_client/TestWriteMemory.py @@ -0,0 +1,29 @@ +from __future__ import print_function +import lldb +from lldbsuite.test.lldbtest import * +from lldbsuite.test.decorators import * +from gdbclientutils import * + + +class TestWriteMemory(GDBRemoteTestBase): + + def test(self): + + class MyResponder(MockGDBServerResponder): + def setBreakpoint(self, packet): + return "OK" + + self.server.responder = MyResponder() + target = self.dbg.CreateTarget('') + process = self.connect(target) + + bp = target.BreakpointCreateByAddress(0x1000) + self.assertTrue(bp.IsValid()) + self.assertEqual(bp.GetNumLocations(), 1) + bp.SetEnabled(True) + self.assertTrue(bp.IsEnabled()) + + err = lldb.SBError() + data = str("\x01\x02\x03\x04") + result = process.WriteMemory(0x1000, data, err) + self.assertEqual(result, 4) -- cgit v1.2.3