summaryrefslogtreecommitdiffstats
path: root/lldb/source/Breakpoint/BreakpointOptions.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2018-02-23 21:10:42 +0000
committerJim Ingham <jingham@apple.com>2018-02-23 21:10:42 +0000
commite8b072d9e48881c4b84793acd554cc85e641b05f (patch)
tree91855c29dfc65e81b70d3ebfc51d4a62feeb129a /lldb/source/Breakpoint/BreakpointOptions.cpp
parent16b20245baf368e5bc699dca4992d42a9dcf744f (diff)
downloadbcm5719-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.cpp17
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();
}
OpenPOWER on IntegriCloud