Fix stepping a virtual thread when the python operating system was enabled.
authorGreg Clayton <gclayton@apple.com>
Tue, 7 Apr 2015 22:17:41 +0000 (22:17 +0000)
committerGreg Clayton <gclayton@apple.com>
Tue, 7 Apr 2015 22:17:41 +0000 (22:17 +0000)
commitab745c2ad865c07f3905482fd071ef36c024713a
tree8d01a1a5354618d3f25df18d5d38fa659ee56d74
parent61a5bbf92a25d1f8aa32a09b132f35a6b2a69f26
Fix stepping a virtual thread when the python operating system was enabled.

The OperatingSystem plug-ins allow code to detect threads in memory and then say "memory thread 0x11111" is backed by the actual thread 1.

You can then single step these virtual threads. A problem arose when thread specific breakpoints were used during thread plans where we would say "set a breakpoint on thread 0x11111" and we would hit the breakpoint on the real thread 1 and the thread IDs wouldn't match and we would get rid of the "stopped at breakpoint" stop info due to this mismatch. Code was added to ensure these events get forwarded and thus allow single stepping a memory thread to work correctly.

Added a test case for this as well.

<rdar://problem/19211770>

llvm-svn: 234364
lldb/include/lldb/Target/StopInfo.h
lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
lldb/source/Plugins/Process/Utility/ThreadMemory.cpp
lldb/source/Target/StopInfo.cpp
lldb/test/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py