summaryrefslogtreecommitdiffstats
path: root/lldb/source/Breakpoint/BreakpointList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Breakpoint/BreakpointList.cpp')
-rw-r--r--lldb/source/Breakpoint/BreakpointList.cpp343
1 files changed, 152 insertions, 191 deletions
diff --git a/lldb/source/Breakpoint/BreakpointList.cpp b/lldb/source/Breakpoint/BreakpointList.cpp
index 9877c2d1246..a47a07d92e5 100644
--- a/lldb/source/Breakpoint/BreakpointList.cpp
+++ b/lldb/source/Breakpoint/BreakpointList.cpp
@@ -19,222 +19,183 @@ using namespace lldb;
using namespace lldb_private;
BreakpointList::BreakpointList(bool is_internal)
- : m_mutex(), m_breakpoints(), m_next_break_id(0), m_is_internal(is_internal)
-{
-}
-
-BreakpointList::~BreakpointList()
-{
-}
-
-
-break_id_t
-BreakpointList::Add (BreakpointSP &bp_sp, bool notify)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- // Internal breakpoint IDs are negative, normal ones are positive
- bp_sp->SetID (m_is_internal ? --m_next_break_id : ++m_next_break_id);
-
- m_breakpoints.push_back(bp_sp);
- if (notify)
- {
- if (bp_sp->GetTarget().EventTypeHasListeners(Target::eBroadcastBitBreakpointChanged))
- bp_sp->GetTarget().BroadcastEvent (Target::eBroadcastBitBreakpointChanged,
- new Breakpoint::BreakpointEventData (eBreakpointEventTypeAdded, bp_sp));
- }
- return bp_sp->GetID();
-}
-
-bool
-BreakpointList::Remove (break_id_t break_id, bool notify)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- bp_collection::iterator pos = GetBreakpointIDIterator(break_id); // Predicate
- if (pos != m_breakpoints.end())
- {
- BreakpointSP bp_sp (*pos);
- m_breakpoints.erase(pos);
- if (notify)
- {
- if (bp_sp->GetTarget().EventTypeHasListeners(Target::eBroadcastBitBreakpointChanged))
- bp_sp->GetTarget().BroadcastEvent (Target::eBroadcastBitBreakpointChanged,
- new Breakpoint::BreakpointEventData (eBreakpointEventTypeRemoved, bp_sp));
- }
- return true;
+ : m_mutex(), m_breakpoints(), m_next_break_id(0),
+ m_is_internal(is_internal) {}
+
+BreakpointList::~BreakpointList() {}
+
+break_id_t BreakpointList::Add(BreakpointSP &bp_sp, bool notify) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ // Internal breakpoint IDs are negative, normal ones are positive
+ bp_sp->SetID(m_is_internal ? --m_next_break_id : ++m_next_break_id);
+
+ m_breakpoints.push_back(bp_sp);
+ if (notify) {
+ if (bp_sp->GetTarget().EventTypeHasListeners(
+ Target::eBroadcastBitBreakpointChanged))
+ bp_sp->GetTarget().BroadcastEvent(Target::eBroadcastBitBreakpointChanged,
+ new Breakpoint::BreakpointEventData(
+ eBreakpointEventTypeAdded, bp_sp));
+ }
+ return bp_sp->GetID();
+}
+
+bool BreakpointList::Remove(break_id_t break_id, bool notify) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ bp_collection::iterator pos = GetBreakpointIDIterator(break_id); // Predicate
+ if (pos != m_breakpoints.end()) {
+ BreakpointSP bp_sp(*pos);
+ m_breakpoints.erase(pos);
+ if (notify) {
+ if (bp_sp->GetTarget().EventTypeHasListeners(
+ Target::eBroadcastBitBreakpointChanged))
+ bp_sp->GetTarget().BroadcastEvent(
+ Target::eBroadcastBitBreakpointChanged,
+ new Breakpoint::BreakpointEventData(eBreakpointEventTypeRemoved,
+ bp_sp));
}
- return false;
+ return true;
+ }
+ return false;
}
-void
-BreakpointList::RemoveInvalidLocations (const ArchSpec &arch)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- for (const auto &bp_sp : m_breakpoints)
- bp_sp->RemoveInvalidLocations(arch);
+void BreakpointList::RemoveInvalidLocations(const ArchSpec &arch) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ for (const auto &bp_sp : m_breakpoints)
+ bp_sp->RemoveInvalidLocations(arch);
}
-
-void
-BreakpointList::SetEnabledAll (bool enabled)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- for (const auto &bp_sp : m_breakpoints)
- bp_sp->SetEnabled (enabled);
+void BreakpointList::SetEnabledAll(bool enabled) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ for (const auto &bp_sp : m_breakpoints)
+ bp_sp->SetEnabled(enabled);
}
+void BreakpointList::RemoveAll(bool notify) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ ClearAllBreakpointSites();
-void
-BreakpointList::RemoveAll (bool notify)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- ClearAllBreakpointSites ();
-
- if (notify)
- {
- bp_collection::iterator pos, end = m_breakpoints.end();
- for (pos = m_breakpoints.begin(); pos != end; ++pos)
- {
- if ((*pos)->GetTarget().EventTypeHasListeners(Target::eBroadcastBitBreakpointChanged))
- {
- (*pos)->GetTarget().BroadcastEvent (Target::eBroadcastBitBreakpointChanged,
- new Breakpoint::BreakpointEventData (eBreakpointEventTypeRemoved,
- *pos));
- }
- }
+ if (notify) {
+ bp_collection::iterator pos, end = m_breakpoints.end();
+ for (pos = m_breakpoints.begin(); pos != end; ++pos) {
+ if ((*pos)->GetTarget().EventTypeHasListeners(
+ Target::eBroadcastBitBreakpointChanged)) {
+ (*pos)->GetTarget().BroadcastEvent(
+ Target::eBroadcastBitBreakpointChanged,
+ new Breakpoint::BreakpointEventData(eBreakpointEventTypeRemoved,
+ *pos));
+ }
}
- m_breakpoints.erase (m_breakpoints.begin(), m_breakpoints.end());
+ }
+ m_breakpoints.erase(m_breakpoints.begin(), m_breakpoints.end());
}
-class BreakpointIDMatches
-{
+class BreakpointIDMatches {
public:
- BreakpointIDMatches (break_id_t break_id) :
- m_break_id(break_id)
- {
- }
+ BreakpointIDMatches(break_id_t break_id) : m_break_id(break_id) {}
- bool operator() (const BreakpointSP &bp) const
- {
- return m_break_id == bp->GetID();
- }
+ bool operator()(const BreakpointSP &bp) const {
+ return m_break_id == bp->GetID();
+ }
private:
- const break_id_t m_break_id;
+ const break_id_t m_break_id;
};
BreakpointList::bp_collection::iterator
-BreakpointList::GetBreakpointIDIterator (break_id_t break_id)
-{
- return std::find_if(m_breakpoints.begin(), m_breakpoints.end(), // Search full range
- BreakpointIDMatches(break_id)); // Predicate
+BreakpointList::GetBreakpointIDIterator(break_id_t break_id) {
+ return std::find_if(m_breakpoints.begin(),
+ m_breakpoints.end(), // Search full range
+ BreakpointIDMatches(break_id)); // Predicate
}
BreakpointList::bp_collection::const_iterator
-BreakpointList::GetBreakpointIDConstIterator (break_id_t break_id) const
-{
- return std::find_if(m_breakpoints.begin(), m_breakpoints.end(), // Search full range
- BreakpointIDMatches(break_id)); // Predicate
+BreakpointList::GetBreakpointIDConstIterator(break_id_t break_id) const {
+ return std::find_if(m_breakpoints.begin(),
+ m_breakpoints.end(), // Search full range
+ BreakpointIDMatches(break_id)); // Predicate
}
-BreakpointSP
-BreakpointList::FindBreakpointByID (break_id_t break_id)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- BreakpointSP stop_sp;
- bp_collection::iterator pos = GetBreakpointIDIterator(break_id);
- if (pos != m_breakpoints.end())
- stop_sp = *pos;
+BreakpointSP BreakpointList::FindBreakpointByID(break_id_t break_id) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ BreakpointSP stop_sp;
+ bp_collection::iterator pos = GetBreakpointIDIterator(break_id);
+ if (pos != m_breakpoints.end())
+ stop_sp = *pos;
- return stop_sp;
-}
-
-const BreakpointSP
-BreakpointList::FindBreakpointByID (break_id_t break_id) const
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- BreakpointSP stop_sp;
- bp_collection::const_iterator pos = GetBreakpointIDConstIterator(break_id);
- if (pos != m_breakpoints.end())
- stop_sp = *pos;
-
- return stop_sp;
-}
-
-void
-BreakpointList::Dump (Stream *s) const
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- s->Printf("%p: ", static_cast<const void*>(this));
- s->Indent();
- s->Printf("BreakpointList with %u Breakpoints:\n", (uint32_t)m_breakpoints.size());
- s->IndentMore();
- for (const auto &bp_sp : m_breakpoints)
- bp_sp->Dump(s);
- s->IndentLess();
-}
-
-
-BreakpointSP
-BreakpointList::GetBreakpointAtIndex (size_t i)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- BreakpointSP stop_sp;
- bp_collection::iterator end = m_breakpoints.end();
- bp_collection::iterator pos;
- size_t curr_i = 0;
- for (pos = m_breakpoints.begin(), curr_i = 0; pos != end; ++pos, ++curr_i)
- {
- if (curr_i == i)
- stop_sp = *pos;
- }
- return stop_sp;
+ return stop_sp;
}
const BreakpointSP
-BreakpointList::GetBreakpointAtIndex (size_t i) const
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- BreakpointSP stop_sp;
- bp_collection::const_iterator end = m_breakpoints.end();
- bp_collection::const_iterator pos;
- size_t curr_i = 0;
- for (pos = m_breakpoints.begin(), curr_i = 0; pos != end; ++pos, ++curr_i)
- {
- if (curr_i == i)
- stop_sp = *pos;
- }
- return stop_sp;
-}
-
-void
-BreakpointList::UpdateBreakpoints (ModuleList& module_list, bool added, bool delete_locations)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- for (const auto &bp_sp : m_breakpoints)
- bp_sp->ModulesChanged (module_list, added, delete_locations);
-
-}
-
-void
-BreakpointList::UpdateBreakpointsWhenModuleIsReplaced (ModuleSP old_module_sp, ModuleSP new_module_sp)
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- for (const auto &bp_sp : m_breakpoints)
- bp_sp->ModuleReplaced (old_module_sp, new_module_sp);
-
-}
-
-void
-BreakpointList::ClearAllBreakpointSites ()
-{
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- for (const auto &bp_sp : m_breakpoints)
- bp_sp->ClearAllBreakpointSites ();
-
-}
-
-void
-BreakpointList::GetListMutex(std::unique_lock<std::recursive_mutex> &lock)
-{
- lock = std::unique_lock<std::recursive_mutex>(m_mutex);
+BreakpointList::FindBreakpointByID(break_id_t break_id) const {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ BreakpointSP stop_sp;
+ bp_collection::const_iterator pos = GetBreakpointIDConstIterator(break_id);
+ if (pos != m_breakpoints.end())
+ stop_sp = *pos;
+
+ return stop_sp;
+}
+
+void BreakpointList::Dump(Stream *s) const {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ s->Printf("%p: ", static_cast<const void *>(this));
+ s->Indent();
+ s->Printf("BreakpointList with %u Breakpoints:\n",
+ (uint32_t)m_breakpoints.size());
+ s->IndentMore();
+ for (const auto &bp_sp : m_breakpoints)
+ bp_sp->Dump(s);
+ s->IndentLess();
+}
+
+BreakpointSP BreakpointList::GetBreakpointAtIndex(size_t i) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ BreakpointSP stop_sp;
+ bp_collection::iterator end = m_breakpoints.end();
+ bp_collection::iterator pos;
+ size_t curr_i = 0;
+ for (pos = m_breakpoints.begin(), curr_i = 0; pos != end; ++pos, ++curr_i) {
+ if (curr_i == i)
+ stop_sp = *pos;
+ }
+ return stop_sp;
+}
+
+const BreakpointSP BreakpointList::GetBreakpointAtIndex(size_t i) const {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ BreakpointSP stop_sp;
+ bp_collection::const_iterator end = m_breakpoints.end();
+ bp_collection::const_iterator pos;
+ size_t curr_i = 0;
+ for (pos = m_breakpoints.begin(), curr_i = 0; pos != end; ++pos, ++curr_i) {
+ if (curr_i == i)
+ stop_sp = *pos;
+ }
+ return stop_sp;
+}
+
+void BreakpointList::UpdateBreakpoints(ModuleList &module_list, bool added,
+ bool delete_locations) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ for (const auto &bp_sp : m_breakpoints)
+ bp_sp->ModulesChanged(module_list, added, delete_locations);
+}
+
+void BreakpointList::UpdateBreakpointsWhenModuleIsReplaced(
+ ModuleSP old_module_sp, ModuleSP new_module_sp) {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ for (const auto &bp_sp : m_breakpoints)
+ bp_sp->ModuleReplaced(old_module_sp, new_module_sp);
+}
+
+void BreakpointList::ClearAllBreakpointSites() {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ for (const auto &bp_sp : m_breakpoints)
+ bp_sp->ClearAllBreakpointSites();
+}
+
+void BreakpointList::GetListMutex(
+ std::unique_lock<std::recursive_mutex> &lock) {
+ lock = std::unique_lock<std::recursive_mutex>(m_mutex);
}
OpenPOWER on IntegriCloud