aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Breakpoint/BreakpointSiteList.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Breakpoint/BreakpointSiteList.h')
-rw-r--r--include/lldb/Breakpoint/BreakpointSiteList.h350
1 files changed, 169 insertions, 181 deletions
diff --git a/include/lldb/Breakpoint/BreakpointSiteList.h b/include/lldb/Breakpoint/BreakpointSiteList.h
index e681aa3599f7..1431fe799675 100644
--- a/include/lldb/Breakpoint/BreakpointSiteList.h
+++ b/include/lldb/Breakpoint/BreakpointSiteList.h
@@ -23,197 +23,185 @@
namespace lldb_private {
//----------------------------------------------------------------------
-/// @class BreakpointSiteList BreakpointSiteList.h "lldb/Breakpoint/BreakpointSiteList.h"
+/// @class BreakpointSiteList BreakpointSiteList.h
+/// "lldb/Breakpoint/BreakpointSiteList.h"
/// @brief Class that manages lists of BreakpointSite shared pointers.
//----------------------------------------------------------------------
-class BreakpointSiteList
-{
-// At present Process directly accesses the map of BreakpointSites so it can
-// do quick lookups into the map (using GetMap).
-// FIXME: Find a better interface for this.
-friend class Process;
+class BreakpointSiteList {
+ // At present Process directly accesses the map of BreakpointSites so it can
+ // do quick lookups into the map (using GetMap).
+ // FIXME: Find a better interface for this.
+ friend class Process;
public:
- //------------------------------------------------------------------
- /// Default constructor makes an empty list.
- //------------------------------------------------------------------
- BreakpointSiteList();
-
- //------------------------------------------------------------------
- /// Destructor, currently does nothing.
- //------------------------------------------------------------------
- ~BreakpointSiteList();
-
- //------------------------------------------------------------------
- /// Add a BreakpointSite to the list.
- ///
- /// @param[in] bp_site_sp
- /// A shared pointer to a breakpoint site being added to the list.
- ///
- /// @return
- /// The ID of the BreakpointSite in the list.
- //------------------------------------------------------------------
- lldb::break_id_t
- Add (const lldb::BreakpointSiteSP& bp_site_sp);
-
- //------------------------------------------------------------------
- /// Standard Dump routine, doesn't do anything at present.
- /// @param[in] s
- /// Stream into which to dump the description.
- //------------------------------------------------------------------
- void
- Dump (Stream *s) const;
-
- //------------------------------------------------------------------
- /// Returns a shared pointer to the breakpoint site at address
- /// \a addr.
- ///
- /// @param[in] addr
- /// The address to look for.
- ///
- /// @result
- /// A shared pointer to the breakpoint site. May contain a NULL
- /// pointer if no breakpoint site exists with a matching address.
- //------------------------------------------------------------------
- lldb::BreakpointSiteSP
- FindByAddress (lldb::addr_t addr);
-
- //------------------------------------------------------------------
- /// Returns a shared pointer to the breakpoint site with id \a breakID.
- ///
- /// @param[in] breakID
- /// The breakpoint site ID to seek for.
- ///
- /// @result
- /// A shared pointer to the breakpoint site. May contain a NULL pointer if the
- /// breakpoint doesn't exist.
- //------------------------------------------------------------------
- lldb::BreakpointSiteSP
- FindByID (lldb::break_id_t breakID);
-
- //------------------------------------------------------------------
- /// Returns a shared pointer to the breakpoint site with id \a breakID - const version.
- ///
- /// @param[in] breakID
- /// The breakpoint site ID to seek for.
- ///
- /// @result
- /// A shared pointer to the breakpoint site. May contain a NULL pointer if the
- /// breakpoint doesn't exist.
- //------------------------------------------------------------------
- const lldb::BreakpointSiteSP
- FindByID (lldb::break_id_t breakID) const;
-
- //------------------------------------------------------------------
- /// Returns the breakpoint site id to the breakpoint site at address \a addr.
- ///
- /// @param[in] addr
- /// The address to match.
- ///
- /// @result
- /// The ID of the breakpoint site, or LLDB_INVALID_BREAK_ID.
- //------------------------------------------------------------------
- lldb::break_id_t
- FindIDByAddress (lldb::addr_t addr);
-
- //------------------------------------------------------------------
- /// Returns whether the breakpoint site \a bp_site_id has \a bp_id
- // as one of its owners.
- ///
- /// @param[in] bp_site_id
- /// The breakpoint site id to query.
- ///
- /// @param[in] bp_id
- /// The breakpoint id to look for in \a bp_site_id.
- ///
- /// @result
- /// True if \a bp_site_id exists in the site list AND \a bp_id is one of the
- /// owners of that site.
- //------------------------------------------------------------------
- bool
- BreakpointSiteContainsBreakpoint (lldb::break_id_t bp_site_id, lldb::break_id_t bp_id);
-
- void
- ForEach (std::function <void(BreakpointSite *)> const &callback);
-
- //------------------------------------------------------------------
- /// Removes the breakpoint site given by \b breakID from this list.
- ///
- /// @param[in] breakID
- /// The breakpoint site index to remove.
- ///
- /// @result
- /// \b true if the breakpoint site \a breakID was in the list.
- //------------------------------------------------------------------
- bool
- Remove (lldb::break_id_t breakID);
-
- //------------------------------------------------------------------
- /// Removes the breakpoint site at address \a addr from this list.
- ///
- /// @param[in] addr
- /// The address from which to remove a breakpoint site.
- ///
- /// @result
- /// \b true if \a addr had a breakpoint site to remove from the list.
- //------------------------------------------------------------------
- bool
- RemoveByAddress (lldb::addr_t addr);
-
- bool
- FindInRange (lldb::addr_t lower_bound, lldb::addr_t upper_bound, BreakpointSiteList &bp_site_list) const;
-
- typedef void (*BreakpointSiteSPMapFunc) (lldb::BreakpointSiteSP &bp, void *baton);
-
- //------------------------------------------------------------------
- /// Enquires of the breakpoint site on in this list with ID \a breakID whether
- /// we should stop for the breakpoint or not.
- ///
- /// @param[in] context
- /// This contains the information about this stop.
- ///
- /// @param[in] breakID
- /// This break ID that we hit.
- ///
- /// @return
- /// \b true if we should stop, \b false otherwise.
- //------------------------------------------------------------------
- bool
- ShouldStop (StoppointCallbackContext *context, lldb::break_id_t breakID);
-
- //------------------------------------------------------------------
- /// Returns the number of elements in the list.
- ///
- /// @result
- /// The number of elements.
- //------------------------------------------------------------------
- size_t
- GetSize() const
- {
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- return m_bp_site_list.size();
- }
-
- bool
- IsEmpty() const
- {
- std::lock_guard<std::recursive_mutex> guard(m_mutex);
- return m_bp_site_list.empty();
- }
+ //------------------------------------------------------------------
+ /// Default constructor makes an empty list.
+ //------------------------------------------------------------------
+ BreakpointSiteList();
+
+ //------------------------------------------------------------------
+ /// Destructor, currently does nothing.
+ //------------------------------------------------------------------
+ ~BreakpointSiteList();
+
+ //------------------------------------------------------------------
+ /// Add a BreakpointSite to the list.
+ ///
+ /// @param[in] bp_site_sp
+ /// A shared pointer to a breakpoint site being added to the list.
+ ///
+ /// @return
+ /// The ID of the BreakpointSite in the list.
+ //------------------------------------------------------------------
+ lldb::break_id_t Add(const lldb::BreakpointSiteSP &bp_site_sp);
+
+ //------------------------------------------------------------------
+ /// Standard Dump routine, doesn't do anything at present.
+ /// @param[in] s
+ /// Stream into which to dump the description.
+ //------------------------------------------------------------------
+ void Dump(Stream *s) const;
+
+ //------------------------------------------------------------------
+ /// Returns a shared pointer to the breakpoint site at address
+ /// \a addr.
+ ///
+ /// @param[in] addr
+ /// The address to look for.
+ ///
+ /// @result
+ /// A shared pointer to the breakpoint site. May contain a NULL
+ /// pointer if no breakpoint site exists with a matching address.
+ //------------------------------------------------------------------
+ lldb::BreakpointSiteSP FindByAddress(lldb::addr_t addr);
+
+ //------------------------------------------------------------------
+ /// Returns a shared pointer to the breakpoint site with id \a breakID.
+ ///
+ /// @param[in] breakID
+ /// The breakpoint site ID to seek for.
+ ///
+ /// @result
+ /// A shared pointer to the breakpoint site. May contain a NULL pointer if
+ /// the
+ /// breakpoint doesn't exist.
+ //------------------------------------------------------------------
+ lldb::BreakpointSiteSP FindByID(lldb::break_id_t breakID);
+
+ //------------------------------------------------------------------
+ /// Returns a shared pointer to the breakpoint site with id \a breakID - const
+ /// version.
+ ///
+ /// @param[in] breakID
+ /// The breakpoint site ID to seek for.
+ ///
+ /// @result
+ /// A shared pointer to the breakpoint site. May contain a NULL pointer if
+ /// the
+ /// breakpoint doesn't exist.
+ //------------------------------------------------------------------
+ const lldb::BreakpointSiteSP FindByID(lldb::break_id_t breakID) const;
+
+ //------------------------------------------------------------------
+ /// Returns the breakpoint site id to the breakpoint site at address \a addr.
+ ///
+ /// @param[in] addr
+ /// The address to match.
+ ///
+ /// @result
+ /// The ID of the breakpoint site, or LLDB_INVALID_BREAK_ID.
+ //------------------------------------------------------------------
+ lldb::break_id_t FindIDByAddress(lldb::addr_t addr);
+
+ //------------------------------------------------------------------
+ /// Returns whether the breakpoint site \a bp_site_id has \a bp_id
+ // as one of its owners.
+ ///
+ /// @param[in] bp_site_id
+ /// The breakpoint site id to query.
+ ///
+ /// @param[in] bp_id
+ /// The breakpoint id to look for in \a bp_site_id.
+ ///
+ /// @result
+ /// True if \a bp_site_id exists in the site list AND \a bp_id is one of the
+ /// owners of that site.
+ //------------------------------------------------------------------
+ bool BreakpointSiteContainsBreakpoint(lldb::break_id_t bp_site_id,
+ lldb::break_id_t bp_id);
+
+ void ForEach(std::function<void(BreakpointSite *)> const &callback);
+
+ //------------------------------------------------------------------
+ /// Removes the breakpoint site given by \b breakID from this list.
+ ///
+ /// @param[in] breakID
+ /// The breakpoint site index to remove.
+ ///
+ /// @result
+ /// \b true if the breakpoint site \a breakID was in the list.
+ //------------------------------------------------------------------
+ bool Remove(lldb::break_id_t breakID);
+
+ //------------------------------------------------------------------
+ /// Removes the breakpoint site at address \a addr from this list.
+ ///
+ /// @param[in] addr
+ /// The address from which to remove a breakpoint site.
+ ///
+ /// @result
+ /// \b true if \a addr had a breakpoint site to remove from the list.
+ //------------------------------------------------------------------
+ bool RemoveByAddress(lldb::addr_t addr);
+
+ bool FindInRange(lldb::addr_t lower_bound, lldb::addr_t upper_bound,
+ BreakpointSiteList &bp_site_list) const;
+
+ typedef void (*BreakpointSiteSPMapFunc)(lldb::BreakpointSiteSP &bp,
+ void *baton);
+
+ //------------------------------------------------------------------
+ /// Enquires of the breakpoint site on in this list with ID \a breakID whether
+ /// we should stop for the breakpoint or not.
+ ///
+ /// @param[in] context
+ /// This contains the information about this stop.
+ ///
+ /// @param[in] breakID
+ /// This break ID that we hit.
+ ///
+ /// @return
+ /// \b true if we should stop, \b false otherwise.
+ //------------------------------------------------------------------
+ bool ShouldStop(StoppointCallbackContext *context, lldb::break_id_t breakID);
+
+ //------------------------------------------------------------------
+ /// Returns the number of elements in the list.
+ ///
+ /// @result
+ /// The number of elements.
+ //------------------------------------------------------------------
+ size_t GetSize() const {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ return m_bp_site_list.size();
+ }
+
+ bool IsEmpty() const {
+ std::lock_guard<std::recursive_mutex> guard(m_mutex);
+ return m_bp_site_list.empty();
+ }
protected:
- typedef std::map<lldb::addr_t, lldb::BreakpointSiteSP> collection;
+ typedef std::map<lldb::addr_t, lldb::BreakpointSiteSP> collection;
- collection::iterator
- GetIDIterator(lldb::break_id_t breakID);
+ collection::iterator GetIDIterator(lldb::break_id_t breakID);
- collection::const_iterator
- GetIDConstIterator(lldb::break_id_t breakID) const;
+ collection::const_iterator GetIDConstIterator(lldb::break_id_t breakID) const;
- mutable std::recursive_mutex m_mutex;
- collection m_bp_site_list; // The breakpoint site list.
+ mutable std::recursive_mutex m_mutex;
+ collection m_bp_site_list; // The breakpoint site list.
};
} // namespace lldb_private
-#endif // liblldb_BreakpointSiteList_h_
+#endif // liblldb_BreakpointSiteList_h_