diff options
Diffstat (limited to 'lldb/source/Target/ThreadPlanStepOut.cpp')
-rw-r--r-- | lldb/source/Target/ThreadPlanStepOut.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lldb/source/Target/ThreadPlanStepOut.cpp b/lldb/source/Target/ThreadPlanStepOut.cpp index 82b823be62e..eac4a36b0a9 100644 --- a/lldb/source/Target/ThreadPlanStepOut.cpp +++ b/lldb/source/Target/ThreadPlanStepOut.cpp @@ -46,7 +46,8 @@ ThreadPlanStepOut::ThreadPlanStepOut Vote run_vote, uint32_t frame_idx, LazyBool step_out_avoids_code_without_debug_info, - bool continue_to_next_branch + bool continue_to_next_branch, + bool gather_return_value ) : ThreadPlan (ThreadPlan::eKindStepOut, "Step out", thread, stop_vote, run_vote), ThreadPlanShouldStopHere (this), @@ -54,7 +55,8 @@ ThreadPlanStepOut::ThreadPlanStepOut m_return_bp_id (LLDB_INVALID_BREAK_ID), m_return_addr (LLDB_INVALID_ADDRESS), m_stop_others (stop_others), - m_immediate_step_from_function(nullptr) + m_immediate_step_from_function(nullptr), + m_calculate_return_value(gather_return_value) { SetFlagsToDefault(); SetupAvoidNoDebug(step_out_avoids_code_without_debug_info); @@ -538,6 +540,9 @@ ThreadPlanStepOut::CalculateReturnValue () if (m_return_valobj_sp) return; + if (!m_calculate_return_value) + return; + if (m_immediate_step_from_function != nullptr) { CompilerType return_compiler_type = m_immediate_step_from_function->GetCompilerType().GetFunctionReturnType(); |