Fix a memory read bug in lldb-server
authorPavel Labath <pavel@labath.sk>
Wed, 26 Sep 2018 07:31:41 +0000 (07:31 +0000)
committerPavel Labath <pavel@labath.sk>
Wed, 26 Sep 2018 07:31:41 +0000 (07:31 +0000)
commit0ae4022aa0bb2572ef7b997d00904125a0e089b1
tree0b33b2c96f7e879fd10253a0540a2b12960b507d
parent664dd75b42709411bfe4d1d8d248a8f4bf15e4c9
Fix a memory read bug in lldb-server

NativeProcessProtocol::ReadMemoryWithoutTrap had a bug, where it failed
to properly remove inserted breakpoint opcodes if the memory read
partially overlapped the trap opcode. This could not happen on x86
because it has a one-byte breakpoint instruction, but it could happen on
arm, which has a 4-byte breakpoint instruction (in arm mode).

Since triggerring this condition would only be possible on an arm
machine (and even then it would be a bit tricky). I test this using a
NativeProcessProtocol unit test.

llvm-svn: 343076
lldb/source/Host/common/NativeBreakpointList.cpp
lldb/unittests/Host/NativeProcessProtocolTest.cpp