1//===-- StopPointSiteList.cpp ---------------------------------------------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#include "lldb/Breakpoint/StopPointSiteList.h" 10#include "lldb/Breakpoint/BreakpointSite.h" 11#include "lldb/Breakpoint/WatchpointResource.h" 12 13#include "lldb/Utility/Stream.h" 14#include <algorithm> 15 16using namespace lldb; 17using namespace lldb_private; 18 19// This method is only defined when we're specializing for 20// BreakpointSite / BreakpointLocation / Breakpoint. 21// Watchpoints don't have a similar structure, they are 22// WatchpointResource / Watchpoint 23 24template <> 25bool StopPointSiteList<BreakpointSite>::StopPointSiteContainsBreakpoint( 26 typename BreakpointSite::SiteID site_id, lldb::break_id_t bp_id) { 27 std::lock_guard<std::recursive_mutex> guard(m_mutex); 28 typename collection::const_iterator pos = GetIDConstIterator(site_id); 29 if (pos != m_site_list.end()) 30 return pos->second->IsBreakpointAtThisSite(bp_id); 31 32 return false; 33} 34 35namespace lldb_private { 36template class StopPointSiteList<BreakpointSite>; 37} // namespace lldb_private 38