diff options
author | Jim Ingham <jingham@apple.com> | 2016-08-23 17:55:21 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2016-08-23 17:55:21 +0000 |
commit | b612ac37751a42f9c45c8cedde306a7aaa68e10a (patch) | |
tree | dd582a0b9565e40ac7a47936ca426edaa5420113 /lldb/source/Target/ThreadPlanStepOut.cpp | |
parent | d470f434abb082a2c2386b15e8f6710780cdff9c (diff) | |
download | bcm5719-llvm-b612ac37751a42f9c45c8cedde306a7aaa68e10a.tar.gz bcm5719-llvm-b612ac37751a42f9c45c8cedde306a7aaa68e10a.zip |
Implementation "step out" plans shouldn't gather the return value.
When, for instance, "step-in" steps into a function that it doesn't want
to stop in (e.g. has no debug info) it will push a step-out plan to implement
the step out so it can then continue stepping. These step out's don't use
the result of the function stepped out of, so they shouldn't spend the time
to compute it.
llvm-svn: 279540
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(); |