diff options
author | Jim Ingham <jingham@apple.com> | 2018-02-23 21:10:42 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2018-02-23 21:10:42 +0000 |
commit | e8b072d9e48881c4b84793acd554cc85e641b05f (patch) | |
tree | 91855c29dfc65e81b70d3ebfc51d4a62feeb129a /lldb/source/Breakpoint/BreakpointOptions.cpp | |
parent | 16b20245baf368e5bc699dca4992d42a9dcf744f (diff) | |
download | bcm5719-llvm-e8b072d9e48881c4b84793acd554cc85e641b05f.tar.gz bcm5719-llvm-e8b072d9e48881c4b84793acd554cc85e641b05f.zip |
Fix breakpoint thread name conditionals after breakpoint options refactor.
PR36435
llvm-svn: 325958
Diffstat (limited to 'lldb/source/Breakpoint/BreakpointOptions.cpp')
-rw-r--r-- | lldb/source/Breakpoint/BreakpointOptions.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/lldb/source/Breakpoint/BreakpointOptions.cpp b/lldb/source/Breakpoint/BreakpointOptions.cpp index 662b288794d..9c4982257a8 100644 --- a/lldb/source/Breakpoint/BreakpointOptions.cpp +++ b/lldb/source/Breakpoint/BreakpointOptions.cpp @@ -470,12 +470,18 @@ const Baton *BreakpointOptions::GetBaton() const { bool BreakpointOptions::InvokeCallback(StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id) { - if (m_callback && context->is_synchronous == IsCallbackSynchronous()) { - return m_callback(m_callback_baton_sp ? m_callback_baton_sp->data() + if (m_callback) { + if (context->is_synchronous == IsCallbackSynchronous()) { + return m_callback(m_callback_baton_sp ? m_callback_baton_sp->data() : nullptr, context, break_id, break_loc_id); - } else - return true; + } else if (IsCallbackSynchronous()) { + // If a synchronous callback is called at async time, it should not say + // to stop. + return false; + } + } + return true; } bool BreakpointOptions::HasCallback() const { @@ -526,7 +532,10 @@ const ThreadSpec *BreakpointOptions::GetThreadSpecNoCreate() const { ThreadSpec *BreakpointOptions::GetThreadSpec() { if (m_thread_spec_ap.get() == nullptr) + { + m_set_flags.Set(eThreadSpec); m_thread_spec_ap.reset(new ThreadSpec()); + } return m_thread_spec_ap.get(); } |