aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Target/ThreadPlan.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Target/ThreadPlan.h')
-rw-r--r--include/lldb/Target/ThreadPlan.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/lldb/Target/ThreadPlan.h b/include/lldb/Target/ThreadPlan.h
index 3c83fd1b9630..1f20841906d3 100644
--- a/include/lldb/Target/ThreadPlan.h
+++ b/include/lldb/Target/ThreadPlan.h
@@ -501,11 +501,26 @@ public:
return m_thread.GetStopInfo ();
}
+ // If the completion of the thread plan stepped out of a function, the return value of the function
+ // might have been captured by the thread plan (currently only ThreadPlanStepOut does this.)
+ // If so, the ReturnValueObject can be retrieved from here.
+
virtual lldb::ValueObjectSP
GetReturnValueObject ()
{
return lldb::ValueObjectSP();
}
+
+ // If the thread plan managing the evaluation of a user expression lives longer than the command
+ // that instigated the expression (generally because the expression evaluation hit a breakpoint, and
+ // the user regained control at that point) a subsequent process control command step/continue/etc. might
+ // complete the expression evaluations. If so, the result of the expression evaluation will show up here.
+
+ virtual lldb::ClangExpressionVariableSP
+ GetExpressionVariable ()
+ {
+ return lldb::ClangExpressionVariableSP();
+ }
// If a thread plan stores the state before it was run, then you might
// want to restore the state when it is done. This will do that job.
@@ -524,6 +539,27 @@ public:
return false;
}
+ virtual bool
+ SetIterationCount (size_t count)
+ {
+ if (m_takes_iteration_count)
+ {
+ // Don't tell me to do something 0 times...
+ if (count == 0)
+ return false;
+ m_iteration_count = count;
+ }
+ return m_takes_iteration_count;
+ }
+
+ virtual size_t
+ GetIterationCount ()
+ {
+ if (!m_takes_iteration_count)
+ return 0;
+ else
+ return m_iteration_count;
+ }
protected:
//------------------------------------------------------------------
// Classes that inherit from ThreadPlan can see and modify these
@@ -578,6 +614,8 @@ protected:
Thread &m_thread;
Vote m_stop_vote;
Vote m_run_vote;
+ bool m_takes_iteration_count = false;
+ int32_t m_iteration_count = 1;
private:
//------------------------------------------------------------------