diff options
author | Zachary Turner <zturner@google.com> | 2014-11-17 21:31:30 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2014-11-17 21:31:30 +0000 |
commit | 1019695b38bf65ad7d54faa62466cc7b67267aea (patch) | |
tree | 176643285bd21a2334eb25e2b31f9f76c333c7f8 /lldb/source/Plugins/Process/Windows/DebuggerThread.cpp | |
parent | d553d00c79eb250a10cd3ad8b45103ff0be0c9ee (diff) | |
download | bcm5719-llvm-1019695b38bf65ad7d54faa62466cc7b67267aea.tar.gz bcm5719-llvm-1019695b38bf65ad7d54faa62466cc7b67267aea.zip |
Move the thread logic around to fit better into LLDB's process model.
Previously we were directly updating the thread list and stopping
and restarting the process every time threads were created. With
this patch, we queue up thread launches and thread exits, resolve
these all internally, and only update the threads when we get an
UpdateThreadList call. We now only update the private state on
an actual stop (i.e. breakpoint).
llvm-svn: 222178
Diffstat (limited to 'lldb/source/Plugins/Process/Windows/DebuggerThread.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/Windows/DebuggerThread.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lldb/source/Plugins/Process/Windows/DebuggerThread.cpp b/lldb/source/Plugins/Process/Windows/DebuggerThread.cpp index ac191c40e06..2c3ca6f0bf6 100644 --- a/lldb/source/Plugins/Process/Windows/DebuggerThread.cpp +++ b/lldb/source/Plugins/Process/Windows/DebuggerThread.cpp @@ -117,11 +117,11 @@ DebuggerThread::DebugLoop() { ExceptionResult status = HandleExceptionEvent(dbe.u.Exception, dbe.dwThreadId); m_exception.SetValue(status, eBroadcastNever); - m_exception.WaitForValueNotEqualTo(ExceptionResult::WillHandle, status); + m_exception.WaitForValueNotEqualTo(ExceptionResult::BreakInDebugger, status); - if (status == ExceptionResult::Handled) + if (status == ExceptionResult::MaskException) continue_status = DBG_CONTINUE; - else if (status == ExceptionResult::NotHandled) + else if (status == ExceptionResult::SendToApplication) continue_status = DBG_EXCEPTION_NOT_HANDLED; break; } |