diff options
Diffstat (limited to 'lldb/source/Breakpoint/BreakpointLocation.cpp')
| -rw-r--r-- | lldb/source/Breakpoint/BreakpointLocation.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/lldb/source/Breakpoint/BreakpointLocation.cpp b/lldb/source/Breakpoint/BreakpointLocation.cpp index 3ead1eca6913..99f94d04bb31 100644 --- a/lldb/source/Breakpoint/BreakpointLocation.cpp +++ b/lldb/source/Breakpoint/BreakpointLocation.cpp @@ -204,7 +204,7 @@ bool BreakpointLocation::IsCallbackSynchronous() { void BreakpointLocation::SetCallback(BreakpointHitCallback callback, void *baton, bool is_synchronous) { // The default "Baton" class will keep a copy of "baton" and won't free or - // delete it when it goes goes out of scope. + // delete it when it goes out of scope. GetLocationOptions().SetCallback( callback, std::make_shared<UntypedBaton>(baton), is_synchronous); SendBreakpointLocationChangedEvent(eBreakpointEventTypeCommandChanged); @@ -250,6 +250,7 @@ bool BreakpointLocation::ConditionSaysStop(ExecutionContext &exe_ctx, DiagnosticManager diagnostics; if (condition_hash != m_condition_hash || !m_user_expression_sp || + !m_user_expression_sp->IsParseCacheable() || !m_user_expression_sp->MatchesContext(exe_ctx)) { LanguageType language = eLanguageTypeUnknown; // See if we can figure out the language from the frame, otherwise use the @@ -472,10 +473,10 @@ bool BreakpointLocation::ClearBreakpointSite() { // physical implementation of the breakpoint as well if there are no more // owners. Otherwise just remove this owner. if (process_sp) - process_sp->RemoveOwnerFromBreakpointSite(GetBreakpoint().GetID(), - GetID(), m_bp_site_sp); + process_sp->RemoveConstituentFromBreakpointSite(GetBreakpoint().GetID(), + GetID(), m_bp_site_sp); else - m_bp_site_sp->RemoveOwner(GetBreakpoint().GetID(), GetID()); + m_bp_site_sp->RemoveConstituent(GetBreakpoint().GetID(), GetID()); m_bp_site_sp.reset(); return true; @@ -626,22 +627,19 @@ void BreakpointLocation::Dump(Stream *s) const { bool is_resolved = IsResolved(); bool is_hardware = is_resolved && m_bp_site_sp->IsHardware(); - auto hardware_index = is_resolved ? - m_bp_site_sp->GetHardwareIndex() : LLDB_INVALID_INDEX32; lldb::tid_t tid = GetOptionsSpecifyingKind(BreakpointOptions::eThreadSpec) .GetThreadSpecNoCreate() ->GetTID(); s->Printf("BreakpointLocation %u: tid = %4.4" PRIx64 " load addr = 0x%8.8" PRIx64 " state = %s type = %s breakpoint " - "hw_index = %i hit_count = %-4u ignore_count = %-4u", + "hit_count = %-4u ignore_count = %-4u", GetID(), tid, (uint64_t)m_address.GetOpcodeLoadAddress(&m_owner.GetTarget()), (m_options_up ? m_options_up->IsEnabled() : m_owner.IsEnabled()) ? "enabled " : "disabled", - is_hardware ? "hardware" : "software", hardware_index, - GetHitCount(), + is_hardware ? "hardware" : "software", GetHitCount(), GetOptionsSpecifyingKind(BreakpointOptions::eIgnoreCount) .GetIgnoreCount()); } |
