diff options
Diffstat (limited to 'lldb/source/Expression/ClangFunction.cpp')
| -rw-r--r-- | lldb/source/Expression/ClangFunction.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/lldb/source/Expression/ClangFunction.cpp b/lldb/source/Expression/ClangFunction.cpp index d75f5eb32b9..f716f6731db 100644 --- a/lldb/source/Expression/ClangFunction.cpp +++ b/lldb/source/Expression/ClangFunction.cpp @@ -504,13 +504,23 @@ ClangFunction::ExecuteFunction ( call_plan_sp->SetPrivate(true); - return exe_ctx.GetProcessRef().RunThreadPlan (exe_ctx, call_plan_sp, - stop_others, - try_all_threads, - discard_on_error, - single_thread_timeout_usec, - errors); -} + // <rdar://problem/12027563> we need to make sure we record the fact that we are running an expression here + // otherwise this fact will fail to be recorded when fetching an Objective-C object description + if (exe_ctx.GetProcessPtr()) + exe_ctx.GetProcessPtr()->SetRunningUserExpression(true); + + ExecutionResults results = exe_ctx.GetProcessRef().RunThreadPlan (exe_ctx, call_plan_sp, + stop_others, + try_all_threads, + discard_on_error, + single_thread_timeout_usec, + errors); + + if (exe_ctx.GetProcessPtr()) + exe_ctx.GetProcessPtr()->SetRunningUserExpression(false); + + return results; +} ExecutionResults ClangFunction::ExecuteFunction( |

