diff options
Diffstat (limited to 'lldb/source/Breakpoint')
-rw-r--r-- | lldb/source/Breakpoint/Breakpoint.cpp | 25 | ||||
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolver.cpp | 5 | ||||
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolverAddress.cpp | 2 | ||||
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolverFileLine.cpp | 2 | ||||
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolverName.cpp | 6 |
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 (), |