diff options
Diffstat (limited to 'lldb/source/Plugins/Process')
4 files changed, 12 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp index 567658d1983..3e42cf50d74 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.cpp @@ -179,6 +179,9 @@ ThreadKDP::GetPrivateStopReason () if (m_thread_stop_reason_stop_id != process_stop_id || (m_actual_stop_info_sp && !m_actual_stop_info_sp->IsValid())) { + if (IsStillAtLastBreakpointHit()) + return m_actual_stop_info_sp; + if (m_cached_stop_info_sp) SetStopInfo (m_cached_stop_info_sp); else diff --git a/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp b/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp index 9e4c6d60733..cd3bd8c3105 100644 --- a/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp +++ b/lldb/source/Plugins/Process/Utility/ThreadMemory.cpp @@ -107,6 +107,9 @@ ThreadMemory::GetPrivateStopReason () if (m_thread_stop_reason_stop_id != process_stop_id || (m_actual_stop_info_sp && !m_actual_stop_info_sp->IsValid())) { + if (IsStillAtLastBreakpointHit()) + return m_actual_stop_info_sp; + // If GetGDBProcess().SetThreadStopInfo() doesn't find a stop reason // for this thread, then m_actual_stop_info_sp will not ever contain // a valid stop reason and the "m_actual_stop_info_sp->IsValid() == false" diff --git a/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp index b63b42d1ab0..36fa418cf2b 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp @@ -225,6 +225,9 @@ ThreadGDBRemote::GetPrivateStopReason () if (m_thread_stop_reason_stop_id != process_stop_id || (m_actual_stop_info_sp && !m_actual_stop_info_sp->IsValid())) { + if (IsStillAtLastBreakpointHit()) + return m_actual_stop_info_sp; + // If GetGDBProcess().SetThreadStopInfo() doesn't find a stop reason // for this thread, then m_actual_stop_info_sp will not ever contain // a valid stop reason and the "m_actual_stop_info_sp->IsValid() == false" diff --git a/lldb/source/Plugins/Process/mach-core/ThreadMachCore.cpp b/lldb/source/Plugins/Process/mach-core/ThreadMachCore.cpp index 001cda1b035..f88c4887aa9 100644 --- a/lldb/source/Plugins/Process/mach-core/ThreadMachCore.cpp +++ b/lldb/source/Plugins/Process/mach-core/ThreadMachCore.cpp @@ -136,6 +136,9 @@ ThreadMachCore::GetPrivateStopReason () if (m_thread_stop_reason_stop_id != process_stop_id || (m_actual_stop_info_sp && !m_actual_stop_info_sp->IsValid())) { + if (IsStillAtLastBreakpointHit()) + return m_actual_stop_info_sp; + // TODO: can we query the initial state of the thread here? // For now I am just going to pretend that a SIGSTOP happened. |