summaryrefslogtreecommitdiffstats
path: root/lldb/source/Breakpoint
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Breakpoint')
-rw-r--r--lldb/source/Breakpoint/Breakpoint.cpp25
-rw-r--r--lldb/source/Breakpoint/BreakpointResolver.cpp5
-rw-r--r--lldb/source/Breakpoint/BreakpointResolverAddress.cpp2
-rw-r--r--lldb/source/Breakpoint/BreakpointResolverFileLine.cpp2
-rw-r--r--lldb/source/Breakpoint/BreakpointResolverName.cpp6
5 files changed, 33 insertions, 7 deletions
diff --git a/lldb/source/Breakpoint/Breakpoint.cpp b/lldb/source/Breakpoint/Breakpoint.cpp
index 7f8b7dfff3c..11782d015f3 100644
--- a/lldb/source/Breakpoint/Breakpoint.cpp
+++ b/lldb/source/Breakpoint/Breakpoint.cpp
@@ -16,7 +16,9 @@
#include "lldb/Core/Address.h"
#include "lldb/Breakpoint/Breakpoint.h"
#include "lldb/Breakpoint/BreakpointLocation.h"
+#include "lldb/Breakpoint/BreakpointLocationCollection.h"
#include "lldb/Breakpoint/BreakpointResolver.h"
+#include "lldb/Breakpoint/BreakpointResolverFileLine.h"
#include "lldb/Core/Log.h"
#include "lldb/Core/ModuleList.h"
#include "lldb/Core/SearchFilter.h"
@@ -26,9 +28,11 @@
#include "lldb/Target/Target.h"
#include "lldb/Target/ThreadSpec.h"
#include "lldb/lldb-private-log.h"
+#include "llvm/Support/Casting.h"
using namespace lldb;
using namespace lldb_private;
+using namespace llvm;
const ConstString &
Breakpoint::GetEventIdentifier ()
@@ -533,6 +537,27 @@ Breakpoint::GetResolverDescription (Stream *s)
m_resolver_sp->GetDescription (s);
}
+
+bool
+Breakpoint::GetMatchingFileLine (const ConstString &filename, uint32_t line_number, BreakpointLocationCollection &loc_coll)
+{
+ // TODO: To be correct, this method needs to fill the breakpoint location collection
+ // with the location IDs which match the filename and line_number.
+ //
+
+ if (m_resolver_sp)
+ {
+ BreakpointResolverFileLine *resolverFileLine = dyn_cast<BreakpointResolverFileLine>(m_resolver_sp.get());
+ if (resolverFileLine &&
+ resolverFileLine->m_file_spec.GetFilename() == filename &&
+ resolverFileLine->m_line_number == line_number)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
void
Breakpoint::GetFilterDescription (Stream *s)
{
diff --git a/lldb/source/Breakpoint/BreakpointResolver.cpp b/lldb/source/Breakpoint/BreakpointResolver.cpp
index e0fbfde7932..b22fa1e6dbc 100644
--- a/lldb/source/Breakpoint/BreakpointResolver.cpp
+++ b/lldb/source/Breakpoint/BreakpointResolver.cpp
@@ -30,8 +30,9 @@ using namespace lldb_private;
//----------------------------------------------------------------------
// BreakpointResolver:
//----------------------------------------------------------------------
-BreakpointResolver::BreakpointResolver (Breakpoint *bkpt) :
- m_breakpoint (bkpt)
+BreakpointResolver::BreakpointResolver (Breakpoint *bkpt, const unsigned char resolverTy) :
+ m_breakpoint (bkpt),
+ SubclassID (resolverTy)
{
}
diff --git a/lldb/source/Breakpoint/BreakpointResolverAddress.cpp b/lldb/source/Breakpoint/BreakpointResolverAddress.cpp
index 3e462d0c9fb..1949b1b01d0 100644
--- a/lldb/source/Breakpoint/BreakpointResolverAddress.cpp
+++ b/lldb/source/Breakpoint/BreakpointResolverAddress.cpp
@@ -31,7 +31,7 @@ BreakpointResolverAddress::BreakpointResolverAddress
Breakpoint *bkpt,
const Address &addr
) :
- BreakpointResolver (bkpt),
+ BreakpointResolver (bkpt, BreakpointResolver::AddressResolver),
m_addr (addr)
{
}
diff --git a/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp b/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp
index cb620f9a853..187822f8144 100644
--- a/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp
+++ b/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp
@@ -31,7 +31,7 @@ BreakpointResolverFileLine::BreakpointResolverFileLine
uint32_t line_no,
bool check_inlines
) :
- BreakpointResolver (bkpt),
+ BreakpointResolver (bkpt, BreakpointResolver::FileLineResolver),
m_file_spec (file_spec),
m_line_number (line_no),
m_inlines (check_inlines)
diff --git a/lldb/source/Breakpoint/BreakpointResolverName.cpp b/lldb/source/Breakpoint/BreakpointResolverName.cpp
index ee5c86aa8d8..980a0f5127e 100644
--- a/lldb/source/Breakpoint/BreakpointResolverName.cpp
+++ b/lldb/source/Breakpoint/BreakpointResolverName.cpp
@@ -28,7 +28,7 @@ BreakpointResolverName::BreakpointResolverName
uint32_t func_name_type_mask,
Breakpoint::MatchType type
) :
- BreakpointResolver (bkpt),
+ BreakpointResolver (bkpt, BreakpointResolver::NameResolver),
m_func_name (),
m_basename_filter (),
m_func_name_type_mask (func_name_type_mask),
@@ -94,7 +94,7 @@ BreakpointResolverName::BreakpointResolverName
Breakpoint *bkpt,
RegularExpression &func_regex
) :
- BreakpointResolver (bkpt),
+ BreakpointResolver (bkpt, BreakpointResolver::NameResolver),
m_func_name (NULL),
m_class_name (NULL),
m_regex (func_regex),
@@ -110,7 +110,7 @@ BreakpointResolverName::BreakpointResolverName
const char *method,
Breakpoint::MatchType type
) :
- BreakpointResolver (bkpt),
+ BreakpointResolver (bkpt, BreakpointResolver::NameResolver),
m_func_name (method),
m_class_name (class_name),
m_regex (),
OpenPOWER on IntegriCloud