aboutsummaryrefslogtreecommitdiffstats
path: root/include/lldb/Breakpoint
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-01-19 10:06:29 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-01-19 10:06:29 +0000
commit94994d372d014ce4c8758b9605d63fae651bd8aa (patch)
tree51c0b708bd59f205d6b35cb2a8c24d62f0c33d77 /include/lldb/Breakpoint
parent39be7ce23363d12ae3e49aeb1fdb2bfeb892e836 (diff)
downloadsrc-94994d372d014ce4c8758b9605d63fae651bd8aa.tar.gz
src-94994d372d014ce4c8758b9605d63fae651bd8aa.zip
Vendor import of lldb trunk r351319 (just before the release_80 branchvendor/lldb/lldb-trunk-r351319
Notes
Notes: svn path=/vendor/lldb/dist/; revision=343181 svn path=/vendor/lldb/lldb-trunk-r351319/; revision=343182; tag=vendor/lldb/lldb-trunk-r351319
Diffstat (limited to 'include/lldb/Breakpoint')
-rw-r--r--include/lldb/Breakpoint/Breakpoint.h14
-rw-r--r--include/lldb/Breakpoint/BreakpointID.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointIDList.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointList.h37
-rw-r--r--include/lldb/Breakpoint/BreakpointLocation.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointLocationCollection.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointLocationList.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointName.h6
-rw-r--r--include/lldb/Breakpoint/BreakpointOptions.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointResolver.h20
-rw-r--r--include/lldb/Breakpoint/BreakpointResolverAddress.h6
-rw-r--r--include/lldb/Breakpoint/BreakpointResolverFileLine.h21
-rw-r--r--include/lldb/Breakpoint/BreakpointResolverFileRegex.h6
-rw-r--r--include/lldb/Breakpoint/BreakpointResolverName.h20
-rw-r--r--include/lldb/Breakpoint/BreakpointResolverScripted.h81
-rw-r--r--include/lldb/Breakpoint/BreakpointSite.h4
-rw-r--r--include/lldb/Breakpoint/BreakpointSiteList.h4
-rw-r--r--include/lldb/Breakpoint/Stoppoint.h4
-rw-r--r--include/lldb/Breakpoint/StoppointLocation.h4
-rw-r--r--include/lldb/Breakpoint/Watchpoint.h4
-rw-r--r--include/lldb/Breakpoint/WatchpointList.h4
-rw-r--r--include/lldb/Breakpoint/WatchpointOptions.h4
22 files changed, 131 insertions, 132 deletions
diff --git a/include/lldb/Breakpoint/Breakpoint.h b/include/lldb/Breakpoint/Breakpoint.h
index ec4bc946280f..5861a3be36e1 100644
--- a/include/lldb/Breakpoint/Breakpoint.h
+++ b/include/lldb/Breakpoint/Breakpoint.h
@@ -10,23 +10,19 @@
#ifndef liblldb_Breakpoint_h_
#define liblldb_Breakpoint_h_
-// C Includes
-// C++ Includes
#include <memory>
#include <string>
#include <unordered_set>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointID.h"
#include "lldb/Breakpoint/BreakpointLocationCollection.h"
#include "lldb/Breakpoint/BreakpointLocationList.h"
#include "lldb/Breakpoint/BreakpointName.h"
#include "lldb/Breakpoint/BreakpointOptions.h"
#include "lldb/Breakpoint/Stoppoint.h"
-#include "lldb/Core/Event.h"
#include "lldb/Core/SearchFilter.h"
+#include "lldb/Utility/Event.h"
#include "lldb/Utility/StringList.h"
#include "lldb/Utility/StructuredData.h"
@@ -503,6 +499,14 @@ public:
size_t GetNumResolvedLocations() const;
//------------------------------------------------------------------
+ /// Return whether this breakpoint has any resolved locations.
+ ///
+ /// @return
+ /// True if GetNumResolvedLocations > 0
+ //------------------------------------------------------------------
+ bool HasResolvedLocations() const;
+
+ //------------------------------------------------------------------
/// Return the number of breakpoint locations.
///
/// @return
diff --git a/include/lldb/Breakpoint/BreakpointID.h b/include/lldb/Breakpoint/BreakpointID.h
index bbad45ca2d8b..5acb942ed2ad 100644
--- a/include/lldb/Breakpoint/BreakpointID.h
+++ b/include/lldb/Breakpoint/BreakpointID.h
@@ -10,10 +10,6 @@
#ifndef liblldb_BreakpointID_h_
#define liblldb_BreakpointID_h_
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
#include "lldb/lldb-private.h"
diff --git a/include/lldb/Breakpoint/BreakpointIDList.h b/include/lldb/Breakpoint/BreakpointIDList.h
index ec305583e8d9..2820b9fdcaa5 100644
--- a/include/lldb/Breakpoint/BreakpointIDList.h
+++ b/include/lldb/Breakpoint/BreakpointIDList.h
@@ -10,13 +10,9 @@
#ifndef liblldb_BreakpointIDList_h_
#define liblldb_BreakpointIDList_h_
-// C Includes
-// C++ Includes
#include <utility>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/lldb-enumerations.h"
#include "lldb/Breakpoint/BreakpointID.h"
diff --git a/include/lldb/Breakpoint/BreakpointList.h b/include/lldb/Breakpoint/BreakpointList.h
index f4c013d41cc2..c4fc650a29f0 100644
--- a/include/lldb/Breakpoint/BreakpointList.h
+++ b/include/lldb/Breakpoint/BreakpointList.h
@@ -10,13 +10,9 @@
#ifndef liblldb_BreakpointList_h_
#define liblldb_BreakpointList_h_
-// C Includes
-// C++ Includes
#include <list>
#include <mutex>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/Breakpoint.h"
namespace lldb_private {
@@ -54,18 +50,6 @@ public:
void Dump(Stream *s) const;
//------------------------------------------------------------------
- /// Returns a shared pointer to the breakpoint with id \a breakID.
- ///
- /// @param[in] breakID
- /// The breakpoint ID to seek for.
- ///
- /// @result
- /// A shared pointer to the breakpoint. May contain a NULL pointer if the
- /// breakpoint doesn't exist.
- //------------------------------------------------------------------
- lldb::BreakpointSP FindBreakpointByID(lldb::break_id_t breakID);
-
- //------------------------------------------------------------------
/// Returns a shared pointer to the breakpoint with id \a breakID. Const
/// version.
///
@@ -76,7 +60,7 @@ public:
/// A shared pointer to the breakpoint. May contain a NULL pointer if the
/// breakpoint doesn't exist.
//------------------------------------------------------------------
- const lldb::BreakpointSP FindBreakpointByID(lldb::break_id_t breakID) const;
+ lldb::BreakpointSP FindBreakpointByID(lldb::break_id_t breakID) const;
//------------------------------------------------------------------
/// Returns a shared pointer to the breakpoint with index \a i.
@@ -88,20 +72,7 @@ public:
/// A shared pointer to the breakpoint. May contain a NULL pointer if the
/// breakpoint doesn't exist.
//------------------------------------------------------------------
- lldb::BreakpointSP GetBreakpointAtIndex(size_t i);
-
- //------------------------------------------------------------------
- /// Returns a shared pointer to the breakpoint with index \a i, const
- /// version
- ///
- /// @param[in] i
- /// The breakpoint index to seek for.
- ///
- /// @result
- /// A shared pointer to the breakpoint. May contain a NULL pointer if the
- /// breakpoint doesn't exist.
- //------------------------------------------------------------------
- const lldb::BreakpointSP GetBreakpointAtIndex(size_t i) const;
+ lldb::BreakpointSP GetBreakpointAtIndex(size_t i) const;
//------------------------------------------------------------------
/// Find all the breakpoints with a given name
@@ -201,7 +172,7 @@ public:
void GetListMutex(std::unique_lock<std::recursive_mutex> &lock);
protected:
- typedef std::list<lldb::BreakpointSP> bp_collection;
+ typedef std::vector<lldb::BreakpointSP> bp_collection;
bp_collection::iterator GetBreakpointIDIterator(lldb::break_id_t breakID);
@@ -211,7 +182,7 @@ protected:
std::recursive_mutex &GetMutex() const { return m_mutex; }
mutable std::recursive_mutex m_mutex;
- bp_collection m_breakpoints; // The breakpoint list, currently a list.
+ bp_collection m_breakpoints;
lldb::break_id_t m_next_break_id;
bool m_is_internal;
diff --git a/include/lldb/Breakpoint/BreakpointLocation.h b/include/lldb/Breakpoint/BreakpointLocation.h
index c5911085e61b..6448cb16e927 100644
--- a/include/lldb/Breakpoint/BreakpointLocation.h
+++ b/include/lldb/Breakpoint/BreakpointLocation.h
@@ -10,13 +10,9 @@
#ifndef liblldb_BreakpointLocation_h_
#define liblldb_BreakpointLocation_h_
-// C Includes
-// C++ Includes
#include <memory>
#include <mutex>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointOptions.h"
#include "lldb/Breakpoint/StoppointLocation.h"
#include "lldb/Core/Address.h"
diff --git a/include/lldb/Breakpoint/BreakpointLocationCollection.h b/include/lldb/Breakpoint/BreakpointLocationCollection.h
index 579d468647f3..5a188539622b 100644
--- a/include/lldb/Breakpoint/BreakpointLocationCollection.h
+++ b/include/lldb/Breakpoint/BreakpointLocationCollection.h
@@ -10,13 +10,9 @@
#ifndef liblldb_BreakpointLocationCollection_h_
#define liblldb_BreakpointLocationCollection_h_
-// C Includes
-// C++ Includes
#include <mutex>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Utility/Iterable.h"
#include "lldb/lldb-private.h"
diff --git a/include/lldb/Breakpoint/BreakpointLocationList.h b/include/lldb/Breakpoint/BreakpointLocationList.h
index 4e61abb2838e..01ee5b5dcce9 100644
--- a/include/lldb/Breakpoint/BreakpointLocationList.h
+++ b/include/lldb/Breakpoint/BreakpointLocationList.h
@@ -10,14 +10,10 @@
#ifndef liblldb_BreakpointLocationList_h_
#define liblldb_BreakpointLocationList_h_
-// C Includes
-// C++ Includes
#include <map>
#include <mutex>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Core/Address.h"
#include "lldb/Utility/Iterable.h"
#include "lldb/lldb-private.h"
diff --git a/include/lldb/Breakpoint/BreakpointName.h b/include/lldb/Breakpoint/BreakpointName.h
index 292a0de4f48b..5e5a04fe9117 100644
--- a/include/lldb/Breakpoint/BreakpointName.h
+++ b/include/lldb/Breakpoint/BreakpointName.h
@@ -10,22 +10,18 @@
#ifndef liblldb_Breakpoint_Name_h_
#define liblldb_Breakpoint_Name_h_
-// C Includes
-// C++ Includes
#include <memory>
#include <string>
#include <unordered_set>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointID.h"
#include "lldb/Breakpoint/BreakpointLocationCollection.h"
#include "lldb/Breakpoint/BreakpointLocationList.h"
#include "lldb/Breakpoint/BreakpointOptions.h"
#include "lldb/Breakpoint/Stoppoint.h"
-#include "lldb/Core/Event.h"
#include "lldb/Core/SearchFilter.h"
+#include "lldb/Utility/Event.h"
#include "lldb/Utility/Flags.h"
#include "lldb/Utility/StringList.h"
#include "lldb/Utility/StructuredData.h"
diff --git a/include/lldb/Breakpoint/BreakpointOptions.h b/include/lldb/Breakpoint/BreakpointOptions.h
index 84821817f980..e91df20ed305 100644
--- a/include/lldb/Breakpoint/BreakpointOptions.h
+++ b/include/lldb/Breakpoint/BreakpointOptions.h
@@ -10,13 +10,9 @@
#ifndef liblldb_BreakpointOptions_h_
#define liblldb_BreakpointOptions_h_
-// C Includes
-// C++ Includes
#include <memory>
#include <string>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Utility/Baton.h"
#include "lldb/Utility/Flags.h"
#include "lldb/Utility/StringList.h"
diff --git a/include/lldb/Breakpoint/BreakpointResolver.h b/include/lldb/Breakpoint/BreakpointResolver.h
index 944741308da6..32008f3dd96f 100644
--- a/include/lldb/Breakpoint/BreakpointResolver.h
+++ b/include/lldb/Breakpoint/BreakpointResolver.h
@@ -10,10 +10,6 @@
#ifndef liblldb_BreakpointResolver_h_
#define liblldb_BreakpointResolver_h_
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/Breakpoint.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/SearchFilter.h"
@@ -158,6 +154,7 @@ public:
AddressResolver, // This is an instance of BreakpointResolverAddress
NameResolver, // This is an instance of BreakpointResolverName
FileRegexResolver,
+ PythonResolver,
ExceptionResolver,
LastKnownResolverType = ExceptionResolver,
UnknownResolver
@@ -200,17 +197,23 @@ protected:
Inlines,
LanguageName,
LineNumber,
+ Column,
ModuleName,
NameMaskArray,
Offset,
+ PythonClassName,
RegexString,
+ ScriptArgs,
SectionName,
+ SearchDepth,
SkipPrologue,
SymbolNameArray,
LastOptionName
};
static const char
*g_option_names[static_cast<uint32_t>(OptionNames::LastOptionName)];
+
+ virtual void NotifyBreakpointSet() {};
public:
static const char *GetKey(OptionNames enum_value) {
@@ -224,8 +227,11 @@ protected:
/// number that matches, and then filter down the matching addresses to
/// unique entries, and skip the prologue if asked to do so, and then set
/// breakpoint locations in this breakpoint for all the resultant addresses.
+ /// When \p column is nonzero the \p line and \p column args are used to
+ /// filter the results to find the first breakpoint >= (line, column).
void SetSCMatchesByLine(SearchFilter &filter, SymbolContextList &sc_list,
- bool skip_prologue, llvm::StringRef log_ident);
+ bool skip_prologue, llvm::StringRef log_ident,
+ uint32_t line = 0, uint32_t column = 0);
void SetSCMatchesByLine(SearchFilter &, SymbolContextList &, bool,
const char *) = delete;
@@ -237,6 +243,10 @@ protected:
// breakpoints we set.
private:
+ /// Helper for \p SetSCMatchesByLine.
+ void AddLocation(SearchFilter &filter, const SymbolContext &sc,
+ bool skip_prologue, llvm::StringRef log_ident);
+
// Subclass identifier (for llvm isa/dyn_cast)
const unsigned char SubclassID;
DISALLOW_COPY_AND_ASSIGN(BreakpointResolver);
diff --git a/include/lldb/Breakpoint/BreakpointResolverAddress.h b/include/lldb/Breakpoint/BreakpointResolverAddress.h
index 5845fe7cabed..5d8c0b6b7530 100644
--- a/include/lldb/Breakpoint/BreakpointResolverAddress.h
+++ b/include/lldb/Breakpoint/BreakpointResolverAddress.h
@@ -10,10 +10,6 @@
#ifndef liblldb_BreakpointResolverAddress_h_
#define liblldb_BreakpointResolverAddress_h_
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointResolver.h"
#include "lldb/Core/ModuleSpec.h"
@@ -51,7 +47,7 @@ public:
SymbolContext &context, Address *addr,
bool containing) override;
- Searcher::Depth GetDepth() override;
+ lldb::SearchDepth GetDepth() override;
void GetDescription(Stream *s) override;
diff --git a/include/lldb/Breakpoint/BreakpointResolverFileLine.h b/include/lldb/Breakpoint/BreakpointResolverFileLine.h
index 3464f8ea80d8..8671cd2e5562 100644
--- a/include/lldb/Breakpoint/BreakpointResolverFileLine.h
+++ b/include/lldb/Breakpoint/BreakpointResolverFileLine.h
@@ -10,10 +10,6 @@
#ifndef liblldb_BreakpointResolverFileLine_h_
#define liblldb_BreakpointResolverFileLine_h_
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointResolver.h"
namespace lldb_private {
@@ -28,9 +24,9 @@ namespace lldb_private {
class BreakpointResolverFileLine : public BreakpointResolver {
public:
BreakpointResolverFileLine(Breakpoint *bkpt, const FileSpec &resolver,
- uint32_t line_no, lldb::addr_t m_offset,
- bool check_inlines, bool skip_prologue,
- bool exact_match);
+ uint32_t line_no, uint32_t column,
+ lldb::addr_t m_offset, bool check_inlines,
+ bool skip_prologue, bool exact_match);
static BreakpointResolver *
CreateFromStructuredData(Breakpoint *bkpt,
@@ -45,7 +41,7 @@ public:
SymbolContext &context, Address *addr,
bool containing) override;
- Searcher::Depth GetDepth() override;
+ lldb::SearchDepth GetDepth() override;
void GetDescription(Stream *s) override;
@@ -65,10 +61,11 @@ protected:
void FilterContexts(SymbolContextList &sc_list, bool is_relative);
friend class Breakpoint;
- FileSpec m_file_spec; // This is the file spec we are looking for.
- uint32_t m_line_number; // This is the line number that we are looking for.
- bool m_inlines; // This determines whether the resolver looks for inlined
- // functions or not.
+ FileSpec m_file_spec; ///< This is the file spec we are looking for.
+ uint32_t m_line_number; ///< This is the line number that we are looking for.
+ uint32_t m_column; ///< This is the column that we are looking for.
+ bool m_inlines; ///< This determines whether the resolver looks for inlined
+ ///< functions or not.
bool m_skip_prologue;
bool m_exact_match;
diff --git a/include/lldb/Breakpoint/BreakpointResolverFileRegex.h b/include/lldb/Breakpoint/BreakpointResolverFileRegex.h
index c1a7a15566a5..db4f67cf3951 100644
--- a/include/lldb/Breakpoint/BreakpointResolverFileRegex.h
+++ b/include/lldb/Breakpoint/BreakpointResolverFileRegex.h
@@ -11,11 +11,7 @@
#ifndef liblldb_BreakpointResolverFileRegex_h_
#define liblldb_BreakpointResolverFileRegex_h_
-// C Includes
-// C++ Includes
#include <set>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointResolver.h"
#include "lldb/Utility/ConstString.h"
@@ -47,7 +43,7 @@ public:
SymbolContext &context, Address *addr,
bool containing) override;
- Searcher::Depth GetDepth() override;
+ lldb::SearchDepth GetDepth() override;
void GetDescription(Stream *s) override;
diff --git a/include/lldb/Breakpoint/BreakpointResolverName.h b/include/lldb/Breakpoint/BreakpointResolverName.h
index 794ea67bb721..416e1aa301b1 100644
--- a/include/lldb/Breakpoint/BreakpointResolverName.h
+++ b/include/lldb/Breakpoint/BreakpointResolverName.h
@@ -10,13 +10,9 @@
#ifndef liblldb_BreakpointResolverName_h_
#define liblldb_BreakpointResolverName_h_
-// C Includes
-// C++ Includes
#include <string>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointResolver.h"
#include "lldb/Core/Module.h"
@@ -31,20 +27,23 @@ namespace lldb_private {
class BreakpointResolverName : public BreakpointResolver {
public:
BreakpointResolverName(Breakpoint *bkpt, const char *name,
- uint32_t name_type_mask, lldb::LanguageType language,
+ lldb::FunctionNameType name_type_mask,
+ lldb::LanguageType language,
Breakpoint::MatchType type, lldb::addr_t offset,
bool skip_prologue);
// This one takes an array of names. It is always MatchType = Exact.
BreakpointResolverName(Breakpoint *bkpt, const char *names[],
- size_t num_names, uint32_t name_type_mask,
+ size_t num_names,
+ lldb::FunctionNameType name_type_mask,
lldb::LanguageType language, lldb::addr_t offset,
bool skip_prologue);
// This one takes a C++ array of names. It is always MatchType = Exact.
BreakpointResolverName(Breakpoint *bkpt, std::vector<std::string> names,
- uint32_t name_type_mask, lldb::LanguageType language,
- lldb::addr_t offset, bool skip_prologue);
+ lldb::FunctionNameType name_type_mask,
+ lldb::LanguageType language, lldb::addr_t offset,
+ bool skip_prologue);
// Creates a function breakpoint by regular expression. Takes over control
// of the lifespan of func_regex.
@@ -65,7 +64,7 @@ public:
SymbolContext &context, Address *addr,
bool containing) override;
- Searcher::Depth GetDepth() override;
+ lldb::SearchDepth GetDepth() override;
void GetDescription(Stream *s) override;
@@ -89,7 +88,8 @@ protected:
lldb::LanguageType m_language;
bool m_skip_prologue;
- void AddNameLookup(const ConstString &name, uint32_t name_type_mask);
+ void AddNameLookup(const ConstString &name,
+ lldb::FunctionNameType name_type_mask);
};
} // namespace lldb_private
diff --git a/include/lldb/Breakpoint/BreakpointResolverScripted.h b/include/lldb/Breakpoint/BreakpointResolverScripted.h
new file mode 100644
index 000000000000..aaa9cbe4d354
--- /dev/null
+++ b/include/lldb/Breakpoint/BreakpointResolverScripted.h
@@ -0,0 +1,81 @@
+//===-- BreakpointResolverScripted.h -----------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_BreakpointResolverScripted_h_
+#define liblldb_BreakpointResolverScripted_h_
+
+#include "lldb/lldb-forward.h"
+#include "lldb/Breakpoint/BreakpointResolver.h"
+#include "lldb/Core/ModuleSpec.h"
+
+
+namespace lldb_private {
+
+//----------------------------------------------------------------------
+/// @class BreakpointResolverScripted BreakpointResolverScripted.h
+/// "lldb/Breakpoint/BreakpointResolverScripted.h" This class sets breakpoints
+/// on a given Address. This breakpoint only takes once, and then it won't
+/// attempt to reset itself.
+//----------------------------------------------------------------------
+
+class BreakpointResolverScripted : public BreakpointResolver {
+public:
+ BreakpointResolverScripted(Breakpoint *bkpt,
+ const llvm::StringRef class_name,
+ lldb::SearchDepth depth,
+ StructuredDataImpl *args_data,
+ ScriptInterpreter &script_interp);
+
+ ~BreakpointResolverScripted() override;
+
+ static BreakpointResolver *
+ CreateFromStructuredData(Breakpoint *bkpt,
+ const StructuredData::Dictionary &options_dict,
+ Status &error);
+
+ StructuredData::ObjectSP SerializeToStructuredData() override;
+
+ Searcher::CallbackReturn SearchCallback(SearchFilter &filter,
+ SymbolContext &context, Address *addr,
+ bool containing) override;
+
+ lldb::SearchDepth GetDepth() override;
+
+ void GetDescription(Stream *s) override;
+
+ void Dump(Stream *s) const override;
+
+ /// Methods for support type inquiry through isa, cast, and dyn_cast:
+ static inline bool classof(const BreakpointResolverScripted *) { return true; }
+ static inline bool classof(const BreakpointResolver *V) {
+ return V->getResolverID() == BreakpointResolver::PythonResolver;
+ }
+
+ lldb::BreakpointResolverSP CopyForBreakpoint(Breakpoint &breakpoint) override;
+
+protected:
+ void NotifyBreakpointSet() override;
+private:
+ void CreateImplementationIfNeeded();
+ ScriptInterpreter *GetScriptInterpreter();
+
+ std::string m_class_name;
+ lldb::SearchDepth m_depth;
+ StructuredDataImpl *m_args_ptr; // We own this, but the implementation
+ // has to manage the UP (since that is
+ // how it gets stored in the
+ // SBStructuredData).
+ StructuredData::GenericSP m_implementation_sp;
+
+ DISALLOW_COPY_AND_ASSIGN(BreakpointResolverScripted);
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_BreakpointResolverScripted_h_
diff --git a/include/lldb/Breakpoint/BreakpointSite.h b/include/lldb/Breakpoint/BreakpointSite.h
index c9bd883ca738..8d1d69076b1c 100644
--- a/include/lldb/Breakpoint/BreakpointSite.h
+++ b/include/lldb/Breakpoint/BreakpointSite.h
@@ -10,15 +10,11 @@
#ifndef liblldb_BreakpointSite_h_
#define liblldb_BreakpointSite_h_
-// C Includes
-// C++ Includes
#include <list>
#include <mutex>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointLocationCollection.h"
#include "lldb/Breakpoint/StoppointLocation.h"
#include "lldb/Utility/UserID.h"
diff --git a/include/lldb/Breakpoint/BreakpointSiteList.h b/include/lldb/Breakpoint/BreakpointSiteList.h
index d6530c170430..2f2e31cd3126 100644
--- a/include/lldb/Breakpoint/BreakpointSiteList.h
+++ b/include/lldb/Breakpoint/BreakpointSiteList.h
@@ -10,14 +10,10 @@
#ifndef liblldb_BreakpointSiteList_h_
#define liblldb_BreakpointSiteList_h_
-// C Includes
-// C++ Includes
#include <functional>
#include <map>
#include <mutex>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/BreakpointSite.h"
namespace lldb_private {
diff --git a/include/lldb/Breakpoint/Stoppoint.h b/include/lldb/Breakpoint/Stoppoint.h
index 3195ef942d9e..78baa6ce6cbb 100644
--- a/include/lldb/Breakpoint/Stoppoint.h
+++ b/include/lldb/Breakpoint/Stoppoint.h
@@ -10,10 +10,6 @@
#ifndef liblldb_Stoppoint_h_
#define liblldb_Stoppoint_h_
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
#include "lldb/Utility/UserID.h"
#include "lldb/lldb-private.h"
diff --git a/include/lldb/Breakpoint/StoppointLocation.h b/include/lldb/Breakpoint/StoppointLocation.h
index 5c717bbc3b0f..5c78d2e3d659 100644
--- a/include/lldb/Breakpoint/StoppointLocation.h
+++ b/include/lldb/Breakpoint/StoppointLocation.h
@@ -10,10 +10,6 @@
#ifndef liblldb_StoppointLocation_h_
#define liblldb_StoppointLocation_h_
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
#include "lldb/Utility/UserID.h"
#include "lldb/lldb-private.h"
// #include "lldb/Breakpoint/BreakpointOptions.h"
diff --git a/include/lldb/Breakpoint/Watchpoint.h b/include/lldb/Breakpoint/Watchpoint.h
index 10df18a5c266..2aaae37eb095 100644
--- a/include/lldb/Breakpoint/Watchpoint.h
+++ b/include/lldb/Breakpoint/Watchpoint.h
@@ -10,13 +10,9 @@
#ifndef liblldb_Watchpoint_h_
#define liblldb_Watchpoint_h_
-// C Includes
-// C++ Includes
#include <memory>
#include <string>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Breakpoint/StoppointLocation.h"
#include "lldb/Breakpoint/WatchpointOptions.h"
#include "lldb/Symbol/CompilerType.h"
diff --git a/include/lldb/Breakpoint/WatchpointList.h b/include/lldb/Breakpoint/WatchpointList.h
index d5e0da444afb..9bfa817456bc 100644
--- a/include/lldb/Breakpoint/WatchpointList.h
+++ b/include/lldb/Breakpoint/WatchpointList.h
@@ -10,14 +10,10 @@
#ifndef liblldb_WatchpointList_h_
#define liblldb_WatchpointList_h_
-// C Includes
-// C++ Includes
#include <list>
#include <mutex>
#include <vector>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Core/Address.h"
#include "lldb/lldb-private.h"
diff --git a/include/lldb/Breakpoint/WatchpointOptions.h b/include/lldb/Breakpoint/WatchpointOptions.h
index 8cb3b97f3a62..0f4f399b5e4d 100644
--- a/include/lldb/Breakpoint/WatchpointOptions.h
+++ b/include/lldb/Breakpoint/WatchpointOptions.h
@@ -10,13 +10,9 @@
#ifndef liblldb_WatchpointOptions_h_
#define liblldb_WatchpointOptions_h_
-// C Includes
-// C++ Includes
#include <memory>
#include <string>
-// Other libraries and framework includes
-// Project includes
#include "lldb/Utility/Baton.h"
#include "lldb/Utility/StringList.h"
#include "lldb/lldb-private.h"