summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp')
-rw-r--r--lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp
index 46d84a853d0..826407662ad 100644
--- a/lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp
+++ b/lldb/source/Plugins/Process/MacOSX-User/source/ThreadMacOSX.cpp
@@ -81,11 +81,19 @@ ThreadMacOSX::GetRawStopReason (Thread::StopInfo *stop_info )
if (data_0 == MACH_SOFTWARE_BREAKPOINT_DATA_0)
{
lldb::addr_t pc = GetRegisterContext()->GetPC();
- lldb::user_id_t break_id = m_process.GetBreakpointSiteList().FindIDByAddress(pc);
- if (break_id != LLDB_INVALID_BREAK_ID)
+ lldb::BreakpointSiteSP bp_site_sp = m_process.GetBreakpointSiteList().FindByAddress(pc);
+ if (bp_site_sp)
{
- stop_info->Clear ();
- stop_info->SetStopReasonWithBreakpointSiteID (break_id);
+ if (bp_site_sp->ValidForThisThread (this))
+ {
+ stop_info->Clear ();
+ stop_info->SetStopReasonWithBreakpointSiteID (GetID());
+ }
+ else
+ {
+ stop_info->Clear ();
+ stop_info->SetStopReasonToNone();
+ }
return success;
}
}
OpenPOWER on IntegriCloud