summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/ThreadPlanStepOut.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2016-08-23 17:55:21 +0000
committerJim Ingham <jingham@apple.com>2016-08-23 17:55:21 +0000
commitb612ac37751a42f9c45c8cedde306a7aaa68e10a (patch)
treedd582a0b9565e40ac7a47936ca426edaa5420113 /lldb/source/Target/ThreadPlanStepOut.cpp
parentd470f434abb082a2c2386b15e8f6710780cdff9c (diff)
downloadbcm5719-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.cpp9
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();
OpenPOWER on IntegriCloud