diff options
author | Jim Ingham <jingham@apple.com> | 2012-03-06 00:37:27 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2012-03-06 00:37:27 +0000 |
commit | fab10e89cea94df0c8aa75cc6a7a0ced7330b587 (patch) | |
tree | 0441509077e99a23b00899700c6f599093e2cbcc /lldb/source/Breakpoint | |
parent | 330de22fe0f6f23af82825909bfe9dd54237ea62 (diff) | |
download | bcm5719-llvm-fab10e89cea94df0c8aa75cc6a7a0ced7330b587.tar.gz bcm5719-llvm-fab10e89cea94df0c8aa75cc6a7a0ced7330b587.zip |
Add a command and an SB API to create exception breakpoints. Make the break output prettier for Exception breakpoints.
llvm-svn: 152081
Diffstat (limited to 'lldb/source/Breakpoint')
-rw-r--r-- | lldb/source/Breakpoint/Breakpoint.cpp | 5 | ||||
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolverName.cpp | 18 |
2 files changed, 22 insertions, 1 deletions
diff --git a/lldb/source/Breakpoint/Breakpoint.cpp b/lldb/source/Breakpoint/Breakpoint.cpp index 4d37a7a7edd..7a897661e76 100644 --- a/lldb/source/Breakpoint/Breakpoint.cpp +++ b/lldb/source/Breakpoint/Breakpoint.cpp @@ -487,7 +487,10 @@ Breakpoint::GetDescription (Stream *s, lldb::DescriptionLevel level, bool show_l } else { - s->Printf(", locations = 0 (pending)"); + // Don't print the pending notification for exception resolvers since we don't generally + // know how to set them until the target is run. + if (m_resolver_sp->getResolverID() != BreakpointResolver::ExceptionResolver) + s->Printf(", locations = 0 (pending)"); } GetOptions()->GetDescription(s, level); diff --git a/lldb/source/Breakpoint/BreakpointResolverName.cpp b/lldb/source/Breakpoint/BreakpointResolverName.cpp index 7b7e7a4f8d0..616307a0906 100644 --- a/lldb/source/Breakpoint/BreakpointResolverName.cpp +++ b/lldb/source/Breakpoint/BreakpointResolverName.cpp @@ -61,6 +61,7 @@ BreakpointResolverName::BreakpointResolverName (Breakpoint *bkpt, bool skip_prologue) : BreakpointResolver (bkpt, BreakpointResolver::NameResolver), m_func_name_type_mask (name_type_mask), + m_match_type (Breakpoint::Exact), m_skip_prologue (skip_prologue) { for (size_t i = 0; i < num_names; i++) @@ -69,6 +70,23 @@ BreakpointResolverName::BreakpointResolverName (Breakpoint *bkpt, } } +BreakpointResolverName::BreakpointResolverName (Breakpoint *bkpt, + std::vector<std::string> names, + uint32_t name_type_mask, + bool skip_prologue) : + BreakpointResolver (bkpt, BreakpointResolver::NameResolver), + m_func_name_type_mask (name_type_mask), + m_match_type (Breakpoint::Exact), + m_skip_prologue (skip_prologue) +{ + size_t num_names = names.size(); + + for (size_t i = 0; i < num_names; i++) + { + m_func_names.push_back (ConstString (names[i].c_str())); + } +} + BreakpointResolverName::BreakpointResolverName ( Breakpoint *bkpt, |